/**
 * The MIT License (MIT)
 *
 * Copyright (c) 2018-2019 Erik Moqvist
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

/**
 * This file was generated by cantools version 39.4.5 Thu Mar 21 15:39:11 2024.
 */

#include <string.h>

#include "b30_001.h"

static inline uint8_t pack_left_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_left_shift_u16(
    uint16_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_left_shift_u32(
    uint32_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_left_shift_u64(
    uint64_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value << shift) & mask);
}

static inline uint8_t pack_right_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t pack_right_shift_u16(
    uint16_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t pack_right_shift_u32(
    uint32_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t pack_right_shift_u64(
    uint64_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value >> shift) & mask);
}

static inline uint8_t unpack_left_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value & mask) << shift);
}

static inline uint16_t unpack_left_shift_u16(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint16_t)((uint16_t)(value & mask) << shift);
}

static inline uint32_t unpack_left_shift_u32(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint32_t)((uint32_t)(value & mask) << shift);
}

static inline uint64_t unpack_left_shift_u64(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint64_t)((uint64_t)(value & mask) << shift);
}

static inline uint8_t unpack_right_shift_u8(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint8_t)((uint8_t)(value & mask) >> shift);
}

static inline uint16_t unpack_right_shift_u16(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint16_t)((uint16_t)(value & mask) >> shift);
}

static inline uint32_t unpack_right_shift_u32(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint32_t)((uint32_t)(value & mask) >> shift);
}

static inline uint64_t unpack_right_shift_u64(
    uint8_t value,
    uint8_t shift,
    uint8_t mask)
{
    return (uint64_t)((uint64_t)(value & mask) >> shift);
}

int b30_001_abm1_pack(
    uint8_t *dst_p,
    const struct b30_001_abm1_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_abm1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->drv_sbr, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->pass_sb_lock_sts, 1u, 0x02u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_abm1, 0u, 0x0fu);

    return (16);
}

int b30_001_abm1_unpack(
    struct b30_001_abm1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->check_sum_abm1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->drv_sbr = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->pass_sb_lock_sts = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->rolling_counter_abm1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_abm1_init(struct b30_001_abm1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_abm1_t));
    msg_p->check_sum_abm1 = 0.0;
    msg_p->drv_sbr = 1.0;
    msg_p->pass_sb_lock_sts = 1.0;
    msg_p->rolling_counter_abm1 = 0.0;

    return 0;
}

uint8_t b30_001_abm1_check_sum_abm1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm1_check_sum_abm1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm1_check_sum_abm1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abm1_drv_sbr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm1_drv_sbr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm1_drv_sbr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abm1_pass_sb_lock_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm1_pass_sb_lock_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm1_pass_sb_lock_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abm1_rolling_counter_abm1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm1_rolling_counter_abm1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm1_rolling_counter_abm1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_abm2_pack(
    uint8_t *dst_p,
    const struct b30_001_abm2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_abm2, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->veh_lgt_accel, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->veh_lgt_accel, 0u, 0xffu);
    dst_p[3] |= pack_right_shift_u16(src_p->veh_lat_accel, 8u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->veh_lat_accel, 0u, 0xffu);
    dst_p[5] |= pack_right_shift_u16(src_p->veh_yaw_rate, 8u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->veh_yaw_rate, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->veh_lgt_accel_vld, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->veh_lat_accel_vld, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->veh_dyn_yaw_rate_vld, 5u, 0x20u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_abm2, 0u, 0x0fu);

    return (8);
}

int b30_001_abm2_unpack(
    struct b30_001_abm2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_abm2 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->veh_lgt_accel = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->veh_lgt_accel |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->veh_lat_accel = unpack_left_shift_u16(src_p[3], 8u, 0xffu);
    dst_p->veh_lat_accel |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->veh_yaw_rate = unpack_left_shift_u16(src_p[5], 8u, 0xffu);
    dst_p->veh_yaw_rate |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->veh_lgt_accel_vld = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->veh_lat_accel_vld = unpack_right_shift_u8(src_p[7], 6u, 0x40u);
    dst_p->veh_dyn_yaw_rate_vld = unpack_right_shift_u8(src_p[7], 5u, 0x20u);
    dst_p->rolling_counter_abm2 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_abm2_init(struct b30_001_abm2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_abm2_t));
    msg_p->check_sum_abm2 = 0.0;
    msg_p->veh_lgt_accel = 22033.0;
    msg_p->veh_lat_accel = 22033.0;
    msg_p->veh_yaw_rate = 8721.0;
    msg_p->veh_lgt_accel_vld = 0.0;
    msg_p->veh_lat_accel_vld = 0.0;
    msg_p->veh_dyn_yaw_rate_vld = 0.0;
    msg_p->rolling_counter_abm2 = 0.0;

    return 0;
}

uint8_t b30_001_abm2_check_sum_abm2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm2_check_sum_abm2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm2_check_sum_abm2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_abm2_veh_lgt_accel_encode(double value)
{
    return (uint16_t)((value - -21.592) / 0.00098);
}

double b30_001_abm2_veh_lgt_accel_decode(uint16_t value)
{
    return (((double)value * 0.00098) + -21.592);
}

bool b30_001_abm2_veh_lgt_accel_is_in_range(uint16_t value)
{
    return (value <= 44065u);
}

uint16_t b30_001_abm2_veh_lat_accel_encode(double value)
{
    return (uint16_t)((value - -21.592) / 0.00098);
}

double b30_001_abm2_veh_lat_accel_decode(uint16_t value)
{
    return (((double)value * 0.00098) + -21.592);
}

bool b30_001_abm2_veh_lat_accel_is_in_range(uint16_t value)
{
    return (value <= 44065u);
}

uint16_t b30_001_abm2_veh_yaw_rate_encode(double value)
{
    return (uint16_t)((value - -2.093) / 0.00024);
}

double b30_001_abm2_veh_yaw_rate_decode(uint16_t value)
{
    return (((double)value * 0.00024) + -2.093);
}

bool b30_001_abm2_veh_yaw_rate_is_in_range(uint16_t value)
{
    return (value <= 17442u);
}

uint8_t b30_001_abm2_veh_lgt_accel_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm2_veh_lgt_accel_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm2_veh_lgt_accel_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abm2_veh_lat_accel_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm2_veh_lat_accel_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm2_veh_lat_accel_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abm2_veh_dyn_yaw_rate_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm2_veh_dyn_yaw_rate_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm2_veh_dyn_yaw_rate_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abm2_rolling_counter_abm2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abm2_rolling_counter_abm2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abm2_rolling_counter_abm2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_abs1_pack(
    uint8_t *dst_p,
    const struct b30_001_abs1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_abs1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->fl_wheel_drive_direction, 6u, 0xc0u);
    dst_p[1] |= pack_left_shift_u8(src_p->fl_wheel_spd_vld, 5u, 0x20u);
    dst_p[1] |= pack_right_shift_u16(src_p->fl_wheel_spd, 8u, 0x1fu);
    dst_p[2] |= pack_left_shift_u16(src_p->fl_wheel_spd, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->fr_wheel_drive_direction, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->fr_wheel_spd_vld, 5u, 0x20u);
    dst_p[3] |= pack_right_shift_u16(src_p->fr_wheel_spd, 8u, 0x1fu);
    dst_p[4] |= pack_left_shift_u16(src_p->fr_wheel_spd, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->wss_fl_edges_sum, 0u, 0xffu);
    dst_p[6] |= pack_left_shift_u8(src_p->wss_fr_edges_sum, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->wss_fl_edges_sum_vld, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->wss_fr_edges_sum_vld, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_abs1, 0u, 0x0fu);

    return (8);
}

int b30_001_abs1_unpack(
    struct b30_001_abs1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_abs1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->fl_wheel_drive_direction = unpack_right_shift_u8(src_p[1], 6u, 0xc0u);
    dst_p->fl_wheel_spd_vld = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->fl_wheel_spd = unpack_left_shift_u16(src_p[1], 8u, 0x1fu);
    dst_p->fl_wheel_spd |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->fr_wheel_drive_direction = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->fr_wheel_spd_vld = unpack_right_shift_u8(src_p[3], 5u, 0x20u);
    dst_p->fr_wheel_spd = unpack_left_shift_u16(src_p[3], 8u, 0x1fu);
    dst_p->fr_wheel_spd |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->wss_fl_edges_sum = unpack_right_shift_u8(src_p[5], 0u, 0xffu);
    dst_p->wss_fr_edges_sum = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->wss_fl_edges_sum_vld = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->wss_fr_edges_sum_vld = unpack_right_shift_u8(src_p[7], 6u, 0x40u);
    dst_p->rolling_counter_abs1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_abs1_init(struct b30_001_abs1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_abs1_t));
    msg_p->check_sum_abs1 = 0.0;
    msg_p->fl_wheel_drive_direction = 0.0;
    msg_p->fl_wheel_spd_vld = 0.0;
    msg_p->fl_wheel_spd = 0.0;
    msg_p->fr_wheel_drive_direction = 0.0;
    msg_p->fr_wheel_spd_vld = 0.0;
    msg_p->fr_wheel_spd = 0.0;
    msg_p->wss_fl_edges_sum = 0.0;
    msg_p->wss_fr_edges_sum = 0.0;
    msg_p->wss_fl_edges_sum_vld = 1.0;
    msg_p->wss_fr_edges_sum_vld = 1.0;
    msg_p->rolling_counter_abs1 = 0.0;

    return 0;
}

uint8_t b30_001_abs1_check_sum_abs1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_check_sum_abs1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_check_sum_abs1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs1_fl_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_fl_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_fl_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_abs1_fl_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_fl_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_fl_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_abs1_fl_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_abs1_fl_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_abs1_fl_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_abs1_fr_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_fr_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_fr_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_abs1_fr_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_fr_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_fr_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_abs1_fr_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_abs1_fr_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_abs1_fr_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_abs1_wss_fl_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_wss_fl_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_wss_fl_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs1_wss_fr_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_wss_fr_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_wss_fr_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs1_wss_fl_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_wss_fl_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_wss_fl_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs1_wss_fr_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_wss_fr_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_wss_fr_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs1_rolling_counter_abs1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs1_rolling_counter_abs1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs1_rolling_counter_abs1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_abs2_pack(
    uint8_t *dst_p,
    const struct b30_001_abs2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_abs2, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->rl_wheel_drive_direction, 6u, 0xc0u);
    dst_p[1] |= pack_left_shift_u8(src_p->rl_wheel_spd_vld, 5u, 0x20u);
    dst_p[1] |= pack_right_shift_u16(src_p->rl_wheel_spd, 8u, 0x1fu);
    dst_p[2] |= pack_left_shift_u16(src_p->rl_wheel_spd, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->rr_wheel_drive_direction, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->rr_wheel_spd_vld, 5u, 0x20u);
    dst_p[3] |= pack_right_shift_u16(src_p->rr_wheel_spd, 8u, 0x1fu);
    dst_p[4] |= pack_left_shift_u16(src_p->rr_wheel_spd, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->wss_rr_edges_sum, 0u, 0xffu);
    dst_p[6] |= pack_left_shift_u8(src_p->wss_rl_edges_sum, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->wss_rl_edges_sum_vld, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->wss_rr_edges_sum_vld, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_abs2, 0u, 0x0fu);

    return (8);
}

int b30_001_abs2_unpack(
    struct b30_001_abs2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_abs2 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->rl_wheel_drive_direction = unpack_right_shift_u8(src_p[1], 6u, 0xc0u);
    dst_p->rl_wheel_spd_vld = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->rl_wheel_spd = unpack_left_shift_u16(src_p[1], 8u, 0x1fu);
    dst_p->rl_wheel_spd |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->rr_wheel_drive_direction = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->rr_wheel_spd_vld = unpack_right_shift_u8(src_p[3], 5u, 0x20u);
    dst_p->rr_wheel_spd = unpack_left_shift_u16(src_p[3], 8u, 0x1fu);
    dst_p->rr_wheel_spd |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->wss_rr_edges_sum = unpack_right_shift_u8(src_p[5], 0u, 0xffu);
    dst_p->wss_rl_edges_sum = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->wss_rl_edges_sum_vld = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->wss_rr_edges_sum_vld = unpack_right_shift_u8(src_p[7], 6u, 0x40u);
    dst_p->rolling_counter_abs2 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_abs2_init(struct b30_001_abs2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_abs2_t));
    msg_p->check_sum_abs2 = 0.0;
    msg_p->rl_wheel_drive_direction = 0.0;
    msg_p->rl_wheel_spd_vld = 0.0;
    msg_p->rl_wheel_spd = 0.0;
    msg_p->rr_wheel_drive_direction = 0.0;
    msg_p->rr_wheel_spd_vld = 0.0;
    msg_p->rr_wheel_spd = 0.0;
    msg_p->wss_rr_edges_sum = 0.0;
    msg_p->wss_rl_edges_sum = 0.0;
    msg_p->wss_rl_edges_sum_vld = 1.0;
    msg_p->wss_rr_edges_sum_vld = 1.0;
    msg_p->rolling_counter_abs2 = 0.0;

    return 0;
}

uint8_t b30_001_abs2_check_sum_abs2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_check_sum_abs2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_check_sum_abs2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs2_rl_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_rl_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_rl_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_abs2_rl_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_rl_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_rl_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_abs2_rl_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_abs2_rl_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_abs2_rl_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_abs2_rr_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_rr_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_rr_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_abs2_rr_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_rr_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_rr_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_abs2_rr_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_abs2_rr_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_abs2_rr_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_abs2_wss_rr_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_wss_rr_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_wss_rr_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs2_wss_rl_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_wss_rl_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_wss_rl_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs2_wss_rl_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_wss_rl_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_wss_rl_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs2_wss_rr_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_wss_rr_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_wss_rr_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs2_rolling_counter_abs2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs2_rolling_counter_abs2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs2_rolling_counter_abs2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_abs3_pack(
    uint8_t *dst_p,
    const struct b30_001_abs3_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_abs3, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->abs_fail_sts, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->ebd_fail_sts, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->veh_spd_vld, 5u, 0x20u);
    dst_p[1] |= pack_right_shift_u16(src_p->veh_spd, 8u, 0x1fu);
    dst_p[2] |= pack_left_shift_u16(src_p->veh_spd, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->ebd_actv, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->abs_actv, 3u, 0x08u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_abs3, 0u, 0x0fu);

    return (16);
}

int b30_001_abs3_unpack(
    struct b30_001_abs3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->check_sum_abs3 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->abs_fail_sts = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->ebd_fail_sts = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->veh_spd_vld = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->veh_spd = unpack_left_shift_u16(src_p[1], 8u, 0x1fu);
    dst_p->veh_spd |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->ebd_actv = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->abs_actv = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->rolling_counter_abs3 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_abs3_init(struct b30_001_abs3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_abs3_t));
    msg_p->check_sum_abs3 = 0.0;
    msg_p->abs_fail_sts = 1.0;
    msg_p->ebd_fail_sts = 0.0;
    msg_p->veh_spd_vld = 0.0;
    msg_p->veh_spd = 0.0;
    msg_p->ebd_actv = 0.0;
    msg_p->abs_actv = 0.0;
    msg_p->rolling_counter_abs3 = 0.0;

    return 0;
}

uint8_t b30_001_abs3_check_sum_abs3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_check_sum_abs3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_check_sum_abs3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_abs3_abs_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_abs_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_abs_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs3_ebd_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_ebd_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_ebd_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs3_veh_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_veh_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_veh_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_abs3_veh_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_abs3_veh_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_abs3_veh_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_abs3_ebd_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_ebd_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_ebd_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs3_abs_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_abs_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_abs_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_abs3_rolling_counter_abs3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_abs3_rolling_counter_abs3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_abs3_rolling_counter_abs3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ac2_pack(
    uint8_t *dst_p,
    const struct b30_001_ac2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[2] |= pack_left_shift_u8(src_p->ac_amb_temp, 0u, 0xffu);

    return (8);
}

int b30_001_ac2_unpack(
    struct b30_001_ac2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->ac_amb_temp = unpack_right_shift_u8(src_p[2], 0u, 0xffu);

    return (0);
}

int b30_001_ac2_init(struct b30_001_ac2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ac2_t));
    msg_p->ac_amb_temp = 254.0;

    return 0;
}

uint8_t b30_001_ac2_ac_amb_temp_encode(double value)
{
    return (uint8_t)((value - -40.0) / 0.5);
}

double b30_001_ac2_ac_amb_temp_decode(uint8_t value)
{
    return (((double)value * 0.5) + -40.0);
}

bool b30_001_ac2_ac_amb_temp_is_in_range(uint8_t value)
{
    return (value <= 253u);
}

int b30_001_acc_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_acc_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_acc1, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->longctrl_veh_hld_req, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->longctrl_drv_off_req, 6u, 0x40u);
    dst_p[9] |= pack_left_shift_u8(src_p->longctrl_mod_sts, 2u, 0x3cu);
    dst_p[9] |= pack_left_shift_u8(src_p->longctrl_decel_req, 0u, 0x01u);
    dst_p[10] |= pack_right_shift_u16(src_p->longctrl_eng_trq_req, 8u, 0xffu);
    dst_p[11] |= pack_left_shift_u16(src_p->longctrl_eng_trq_req, 0u, 0xffu);
    dst_p[12] |= pack_left_shift_u8(src_p->longctrl_eng_trq_req_active, 7u, 0x80u);
    dst_p[12] |= pack_left_shift_u8(src_p->longctrl_fuel_cut_off_prevn, 6u, 0x40u);
    dst_p[12] |= pack_left_shift_u8(src_p->longctrl_decel_to_stop_req, 5u, 0x20u);
    dst_p[12] |= pack_left_shift_u8(src_p->longctrl_park_shift_req, 2u, 0x0cu);
    dst_p[13] |= pack_left_shift_u8(src_p->longctrl_decel_req_value, 0u, 0xffu);
    dst_p[14] |= pack_left_shift_u8(src_p->actual_target_speed, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_acc1, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_acc2, 0u, 0xffu);
    dst_p[23] |= pack_left_shift_u8(src_p->acc_cr_interface, 7u, 0x80u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_acc2, 0u, 0x0fu);
    dst_p[24] |= pack_left_shift_u8(src_p->checksum_acc10, 0u, 0xffu);
    dst_p[27] |= pack_right_shift_u16(src_p->longctrl_wheel_trq_req, 8u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->longctrl_wheel_trq_req, 0u, 0xffu);
    dst_p[29] |= pack_left_shift_u8(src_p->longctrl_wheel_trq_req_active, 7u, 0x80u);
    dst_p[31] |= pack_left_shift_u8(src_p->rolling_counter_acc10, 0u, 0x0fu);

    return (64);
}

int b30_001_acc_fd1_unpack(
    struct b30_001_acc_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_acc1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->longctrl_veh_hld_req = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->longctrl_drv_off_req = unpack_right_shift_u8(src_p[9], 6u, 0x40u);
    dst_p->longctrl_mod_sts = unpack_right_shift_u8(src_p[9], 2u, 0x3cu);
    dst_p->longctrl_decel_req = unpack_right_shift_u8(src_p[9], 0u, 0x01u);
    dst_p->longctrl_eng_trq_req = unpack_left_shift_u16(src_p[10], 8u, 0xffu);
    dst_p->longctrl_eng_trq_req |= unpack_right_shift_u16(src_p[11], 0u, 0xffu);
    dst_p->longctrl_eng_trq_req_active = unpack_right_shift_u8(src_p[12], 7u, 0x80u);
    dst_p->longctrl_fuel_cut_off_prevn = unpack_right_shift_u8(src_p[12], 6u, 0x40u);
    dst_p->longctrl_decel_to_stop_req = unpack_right_shift_u8(src_p[12], 5u, 0x20u);
    dst_p->longctrl_park_shift_req = unpack_right_shift_u8(src_p[12], 2u, 0x0cu);
    dst_p->longctrl_decel_req_value = unpack_right_shift_u8(src_p[13], 0u, 0xffu);
    dst_p->actual_target_speed = unpack_right_shift_u8(src_p[14], 0u, 0xffu);
    dst_p->rolling_counter_acc1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_acc2 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->acc_cr_interface = unpack_right_shift_u8(src_p[23], 7u, 0x80u);
    dst_p->rolling_counter_acc2 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->checksum_acc10 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->longctrl_wheel_trq_req = unpack_left_shift_u16(src_p[27], 8u, 0xffu);
    dst_p->longctrl_wheel_trq_req |= unpack_right_shift_u16(src_p[28], 0u, 0xffu);
    dst_p->longctrl_wheel_trq_req_active = unpack_right_shift_u8(src_p[29], 7u, 0x80u);
    dst_p->rolling_counter_acc10 = unpack_right_shift_u8(src_p[31], 0u, 0x0fu);

    return (0);
}

int b30_001_acc_fd1_init(struct b30_001_acc_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_acc_fd1_t));
    msg_p->checksum_acc1 = 0.0;
    msg_p->longctrl_veh_hld_req = 0.0;
    msg_p->longctrl_drv_off_req = 0.0;
    msg_p->longctrl_mod_sts = 0.0;
    msg_p->longctrl_decel_req = 0.0;
    msg_p->longctrl_eng_trq_req = 32767.0;
    msg_p->longctrl_eng_trq_req_active = 0.0;
    msg_p->longctrl_fuel_cut_off_prevn = 0.0;
    msg_p->longctrl_decel_to_stop_req = 0.0;
    msg_p->longctrl_park_shift_req = 0.0;
    msg_p->longctrl_decel_req_value = 0.0;
    msg_p->actual_target_speed = 0.0;
    msg_p->rolling_counter_acc1 = 0.0;
    msg_p->checksum_acc2 = 0.0;
    msg_p->acc_cr_interface = 0.0;
    msg_p->rolling_counter_acc2 = 0.0;
    msg_p->checksum_acc10 = 0.0;
    msg_p->longctrl_wheel_trq_req = 0.0;
    msg_p->longctrl_wheel_trq_req_active = 0.0;
    msg_p->rolling_counter_acc10 = 0.0;

    return 0;
}

uint8_t b30_001_acc_fd1_checksum_acc1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_checksum_acc1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_checksum_acc1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd1_longctrl_veh_hld_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_veh_hld_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_veh_hld_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_longctrl_drv_off_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_drv_off_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_drv_off_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_longctrl_mod_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_mod_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_mod_sts_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd1_longctrl_decel_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_decel_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_decel_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd1_longctrl_eng_trq_req_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_acc_fd1_longctrl_eng_trq_req_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_acc_fd1_longctrl_eng_trq_req_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd1_longctrl_eng_trq_req_active_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_eng_trq_req_active_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_eng_trq_req_active_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_longctrl_fuel_cut_off_prevn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_fuel_cut_off_prevn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_fuel_cut_off_prevn_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_longctrl_decel_to_stop_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_decel_to_stop_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_decel_to_stop_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_longctrl_park_shift_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_park_shift_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_park_shift_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd1_longctrl_decel_req_value_encode(double value)
{
    return (uint8_t)((value - -7.0) / 0.05);
}

double b30_001_acc_fd1_longctrl_decel_req_value_decode(uint8_t value)
{
    return (((double)value * 0.05) + -7.0);
}

bool b30_001_acc_fd1_longctrl_decel_req_value_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd1_actual_target_speed_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_actual_target_speed_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_actual_target_speed_is_in_range(uint8_t value)
{
    return (value <= 254u);
}

uint8_t b30_001_acc_fd1_rolling_counter_acc1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_rolling_counter_acc1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_rolling_counter_acc1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd1_checksum_acc2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_checksum_acc2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_checksum_acc2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd1_acc_cr_interface_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_acc_cr_interface_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_acc_cr_interface_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_rolling_counter_acc2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_rolling_counter_acc2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_rolling_counter_acc2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd1_checksum_acc10_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_checksum_acc10_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_checksum_acc10_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_acc_fd1_longctrl_wheel_trq_req_encode(double value)
{
    return (uint16_t)((value - -16384.0) / 0.5);
}

double b30_001_acc_fd1_longctrl_wheel_trq_req_decode(uint16_t value)
{
    return (((double)value * 0.5) + -16384.0);
}

bool b30_001_acc_fd1_longctrl_wheel_trq_req_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd1_longctrl_wheel_trq_req_active_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_longctrl_wheel_trq_req_active_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_longctrl_wheel_trq_req_active_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd1_rolling_counter_acc10_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd1_rolling_counter_acc10_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd1_rolling_counter_acc10_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_acc_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_acc_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->acc_le_tgt_02_dy, 1u, 0xfeu);
    dst_p[1] |= pack_right_shift_u16(src_p->acc_le_tgt_02_dx, 8u, 0x01u);
    dst_p[2] |= pack_left_shift_u16(src_p->acc_le_tgt_02_dx, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->acc_le_tgt_02_typ, 5u, 0xe0u);
    dst_p[3] |= pack_left_shift_u8(src_p->acc_le_targrt_02_detn, 3u, 0x18u);
    dst_p[3] |= pack_left_shift_u8(src_p->acc_ri_targrt_02_detn, 1u, 0x06u);
    dst_p[3] |= pack_right_shift_u16(src_p->acc_ri_tgt_02_dx, 8u, 0x01u);
    dst_p[4] |= pack_left_shift_u16(src_p->acc_ri_tgt_02_dx, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->acc_le_tgt_obj_bar_disp, 5u, 0xe0u);
    dst_p[5] |= pack_left_shift_u8(src_p->acc_ri_tgt_obj_bar_disp, 2u, 0x1cu);
    dst_p[6] |= pack_left_shift_u8(src_p->acc_ri_tgt_02_dy, 1u, 0xfeu);
    dst_p[7] |= pack_left_shift_u8(src_p->acc_ri_tgt_02_typ, 5u, 0xe0u);
    dst_p[8] |= pack_left_shift_u8(src_p->checksum_acc3, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->isl_resp, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->ica_hands_off_resp, 6u, 0x40u);
    dst_p[9] |= pack_left_shift_u8(src_p->hwa_resp, 5u, 0x20u);
    dst_p[9] |= pack_left_shift_u8(src_p->hwa_snvty_set_resp, 3u, 0x18u);
    dst_p[9] |= pack_left_shift_u8(src_p->alc_resp, 1u, 0x02u);
    dst_p[10] |= pack_left_shift_u8(src_p->longctrl_veh_hld_req_dvr, 7u, 0x80u);
    dst_p[10] |= pack_left_shift_u8(src_p->longctrl_drv_off_req_dvr, 6u, 0x40u);
    dst_p[10] |= pack_left_shift_u8(src_p->longctrl_mod_sts_dvr, 2u, 0x3cu);
    dst_p[10] |= pack_left_shift_u8(src_p->longctrl_decel_req_dvr, 1u, 0x02u);
    dst_p[10] |= pack_left_shift_u8(src_p->longctrl_eng_trq_req_active_dvr, 0u, 0x01u);
    dst_p[11] |= pack_right_shift_u16(src_p->longctrl_eng_trq_req_dvr, 8u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->longctrl_eng_trq_req_dvr, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->longctrl_decel_req_value_dvr, 0u, 0xffu);
    dst_p[14] |= pack_left_shift_u8(src_p->longctrl_decel_to_stop_req_dvr, 7u, 0x80u);
    dst_p[14] |= pack_left_shift_u8(src_p->longctrl_park_shift_req_dvr, 5u, 0x60u);
    dst_p[14] |= pack_left_shift_u8(src_p->longctrl_wheel_trq_req_active_dvr, 4u, 0x10u);
    dst_p[15] |= pack_left_shift_u8(src_p->alc_inter_sys_info_disp, 6u, 0xc0u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_acc3, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_acc4, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->acc_obj_detecte, 7u, 0x80u);
    dst_p[17] |= pack_left_shift_u8(src_p->acc_take_over_req, 6u, 0x40u);
    dst_p[17] |= pack_left_shift_u8(src_p->acc_inter_sys_info_disp, 1u, 0x3eu);
    dst_p[18] |= pack_left_shift_u8(src_p->acc_mod_disp, 3u, 0xf8u);
    dst_p[18] |= pack_left_shift_u8(src_p->acc_fct_sts, 1u, 0x06u);
    dst_p[18] |= pack_left_shift_u8(src_p->acc_req_avm, 0u, 0x01u);
    dst_p[19] |= pack_left_shift_u8(src_p->acc_tgt_obj_bar_disp, 5u, 0xe0u);
    dst_p[19] |= pack_left_shift_u8(src_p->longctrl_haz_actv, 3u, 0x18u);
    dst_p[19] |= pack_left_shift_u8(src_p->tja_acc_sel_sts, 0u, 0x07u);
    dst_p[20] |= pack_left_shift_u8(src_p->cru_cha_mod_disp, 4u, 0xf0u);
    dst_p[20] |= pack_left_shift_u8(src_p->tja_ica_inter_sys_info_disp, 1u, 0x0eu);
    dst_p[21] |= pack_left_shift_u8(src_p->tja_ica_mod_disp, 5u, 0xe0u);
    dst_p[21] |= pack_left_shift_u8(src_p->isl_inter_sys_info_disp, 3u, 0x18u);
    dst_p[21] |= pack_left_shift_u8(src_p->acc_time_gap_set, 0u, 0x07u);
    dst_p[22] |= pack_left_shift_u8(src_p->acc_spd_set_value, 0u, 0xffu);
    dst_p[23] |= pack_left_shift_u8(src_p->cru_char_inter_sys_info_disp, 4u, 0xf0u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_acc4, 0u, 0x0fu);
    dst_p[24] |= pack_left_shift_u8(src_p->checksum_acc8, 0u, 0xffu);
    dst_p[25] |= pack_left_shift_u8(src_p->hwa_mod_disp, 4u, 0xf0u);
    dst_p[25] |= pack_left_shift_u8(src_p->hwa_inter_sys_info_disp, 0u, 0x0fu);
    dst_p[26] |= pack_left_shift_u8(src_p->hwa_lane_change, 4u, 0x30u);
    dst_p[26] |= pack_left_shift_u8(src_p->adas_driver_inloop_monitor, 1u, 0x0eu);
    dst_p[27] |= pack_left_shift_u8(src_p->hwa_lane_change_req, 5u, 0xe0u);
    dst_p[27] |= pack_left_shift_u8(src_p->hwa_warning, 0u, 0x03u);
    dst_p[28] |= pack_right_shift_u16(src_p->longctrl_wheel_trq_req_dvr, 8u, 0xffu);
    dst_p[29] |= pack_left_shift_u16(src_p->longctrl_wheel_trq_req_dvr, 0u, 0xffu);
    dst_p[31] |= pack_left_shift_u8(src_p->rolling_counter_acc8, 0u, 0x0fu);
    dst_p[32] |= pack_left_shift_u8(src_p->checksum_acc6, 0u, 0xffu);
    dst_p[33] |= pack_left_shift_u8(src_p->acc_potential_tgt_dy, 0u, 0xffu);
    dst_p[34] |= pack_right_shift_u16(src_p->acc_potential_tgt_dx, 1u, 0xffu);
    dst_p[35] |= pack_left_shift_u16(src_p->acc_potential_tgt_dx, 7u, 0x80u);
    dst_p[35] |= pack_left_shift_u8(src_p->acc_rlv_tgt_detn, 5u, 0x60u);
    dst_p[35] |= pack_left_shift_u8(src_p->acc_ego_status, 3u, 0x18u);
    dst_p[35] |= pack_left_shift_u8(src_p->acc_rlv_tgt_typ, 0u, 0x07u);
    dst_p[36] |= pack_left_shift_u8(src_p->acc_rlv_tgt_dy, 0u, 0xffu);
    dst_p[37] |= pack_right_shift_u16(src_p->acc_rlv_tgt_dx, 1u, 0xffu);
    dst_p[38] |= pack_left_shift_u16(src_p->acc_rlv_tgt_dx, 7u, 0x80u);
    dst_p[38] |= pack_left_shift_u8(src_p->acc_potential_tgt_detn, 4u, 0x30u);
    dst_p[38] |= pack_left_shift_u8(src_p->acc_potential_tgt_typ, 1u, 0x0eu);
    dst_p[39] |= pack_left_shift_u8(src_p->intelligent_curve_act, 7u, 0x80u);
    dst_p[39] |= pack_left_shift_u8(src_p->rolling_counter_acc6, 0u, 0x0fu);
    dst_p[40] |= pack_left_shift_u8(src_p->checksum_acc7, 0u, 0xffu);
    dst_p[41] |= pack_left_shift_u8(src_p->acc_le_tgt_dy, 0u, 0xffu);
    dst_p[42] |= pack_right_shift_u16(src_p->acc_le_tgt_dx, 1u, 0xffu);
    dst_p[43] |= pack_left_shift_u16(src_p->acc_le_tgt_dx, 7u, 0x80u);
    dst_p[43] |= pack_left_shift_u8(src_p->acc_le_tgt_typ, 4u, 0x70u);
    dst_p[43] |= pack_left_shift_u8(src_p->acc_le_targrt_dection, 2u, 0x0cu);
    dst_p[43] |= pack_left_shift_u8(src_p->acc_ri_targrt_detn, 0u, 0x03u);
    dst_p[44] |= pack_left_shift_u8(src_p->acc_ri_tgt_dy, 0u, 0xffu);
    dst_p[45] |= pack_right_shift_u16(src_p->acc_ri_tgt_dx, 1u, 0xffu);
    dst_p[46] |= pack_left_shift_u16(src_p->acc_ri_tgt_dx, 7u, 0x80u);
    dst_p[46] |= pack_left_shift_u8(src_p->acc_ri_tgt_typ, 4u, 0x70u);
    dst_p[47] |= pack_left_shift_u8(src_p->request_driveoff, 5u, 0xe0u);
    dst_p[47] |= pack_left_shift_u8(src_p->acc_sts, 4u, 0x10u);
    dst_p[47] |= pack_left_shift_u8(src_p->rolling_counter_acc7, 0u, 0x0fu);
    dst_p[49] |= pack_left_shift_u8(src_p->acc_rlv_tgtfusion, 7u, 0x80u);
    dst_p[49] |= pack_left_shift_u8(src_p->acc_rlv_tgt_heading, 1u, 0x7eu);
    dst_p[49] |= pack_left_shift_u8(src_p->acc_le_tgtfusion, 0u, 0x01u);
    dst_p[50] |= pack_left_shift_u8(src_p->acc_le_tgt_heading, 2u, 0xfcu);
    dst_p[50] |= pack_left_shift_u8(src_p->acc_ri_tgtfusion, 1u, 0x02u);
    dst_p[50] |= pack_left_shift_u8(src_p->acc_potential_tgtfusion, 0u, 0x01u);
    dst_p[51] |= pack_left_shift_u8(src_p->acc_ri_tgt_heading, 2u, 0xfcu);
    dst_p[51] |= pack_right_shift_u8(src_p->acc_potential_tgt_heading, 4u, 0x03u);
    dst_p[52] |= pack_left_shift_u8(src_p->acc_potential_tgt_heading, 4u, 0xf0u);
    dst_p[52] |= pack_right_shift_u8(src_p->target_cutin_pro, 2u, 0x0fu);
    dst_p[53] |= pack_left_shift_u8(src_p->target_cutin_pro, 6u, 0xc0u);
    dst_p[53] |= pack_left_shift_u8(src_p->target_cutout_pro, 0u, 0x3fu);

    return (64);
}

int b30_001_acc_fd2_unpack(
    struct b30_001_acc_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->acc_le_tgt_02_dy = unpack_right_shift_u8(src_p[1], 1u, 0xfeu);
    dst_p->acc_le_tgt_02_dx = unpack_left_shift_u16(src_p[1], 8u, 0x01u);
    dst_p->acc_le_tgt_02_dx |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->acc_le_tgt_02_typ = unpack_right_shift_u8(src_p[3], 5u, 0xe0u);
    dst_p->acc_le_targrt_02_detn = unpack_right_shift_u8(src_p[3], 3u, 0x18u);
    dst_p->acc_ri_targrt_02_detn = unpack_right_shift_u8(src_p[3], 1u, 0x06u);
    dst_p->acc_ri_tgt_02_dx = unpack_left_shift_u16(src_p[3], 8u, 0x01u);
    dst_p->acc_ri_tgt_02_dx |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->acc_le_tgt_obj_bar_disp = unpack_right_shift_u8(src_p[5], 5u, 0xe0u);
    dst_p->acc_ri_tgt_obj_bar_disp = unpack_right_shift_u8(src_p[5], 2u, 0x1cu);
    dst_p->acc_ri_tgt_02_dy = unpack_right_shift_u8(src_p[6], 1u, 0xfeu);
    dst_p->acc_ri_tgt_02_typ = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->checksum_acc3 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->isl_resp = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->ica_hands_off_resp = unpack_right_shift_u8(src_p[9], 6u, 0x40u);
    dst_p->hwa_resp = unpack_right_shift_u8(src_p[9], 5u, 0x20u);
    dst_p->hwa_snvty_set_resp = unpack_right_shift_u8(src_p[9], 3u, 0x18u);
    dst_p->alc_resp = unpack_right_shift_u8(src_p[9], 1u, 0x02u);
    dst_p->longctrl_veh_hld_req_dvr = unpack_right_shift_u8(src_p[10], 7u, 0x80u);
    dst_p->longctrl_drv_off_req_dvr = unpack_right_shift_u8(src_p[10], 6u, 0x40u);
    dst_p->longctrl_mod_sts_dvr = unpack_right_shift_u8(src_p[10], 2u, 0x3cu);
    dst_p->longctrl_decel_req_dvr = unpack_right_shift_u8(src_p[10], 1u, 0x02u);
    dst_p->longctrl_eng_trq_req_active_dvr = unpack_right_shift_u8(src_p[10], 0u, 0x01u);
    dst_p->longctrl_eng_trq_req_dvr = unpack_left_shift_u16(src_p[11], 8u, 0xffu);
    dst_p->longctrl_eng_trq_req_dvr |= unpack_right_shift_u16(src_p[12], 0u, 0xffu);
    dst_p->longctrl_decel_req_value_dvr = unpack_right_shift_u8(src_p[13], 0u, 0xffu);
    dst_p->longctrl_decel_to_stop_req_dvr = unpack_right_shift_u8(src_p[14], 7u, 0x80u);
    dst_p->longctrl_park_shift_req_dvr = unpack_right_shift_u8(src_p[14], 5u, 0x60u);
    dst_p->longctrl_wheel_trq_req_active_dvr = unpack_right_shift_u8(src_p[14], 4u, 0x10u);
    dst_p->alc_inter_sys_info_disp = unpack_right_shift_u8(src_p[15], 6u, 0xc0u);
    dst_p->rolling_counter_acc3 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_acc4 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->acc_obj_detecte = unpack_right_shift_u8(src_p[17], 7u, 0x80u);
    dst_p->acc_take_over_req = unpack_right_shift_u8(src_p[17], 6u, 0x40u);
    dst_p->acc_inter_sys_info_disp = unpack_right_shift_u8(src_p[17], 1u, 0x3eu);
    dst_p->acc_mod_disp = unpack_right_shift_u8(src_p[18], 3u, 0xf8u);
    dst_p->acc_fct_sts = unpack_right_shift_u8(src_p[18], 1u, 0x06u);
    dst_p->acc_req_avm = unpack_right_shift_u8(src_p[18], 0u, 0x01u);
    dst_p->acc_tgt_obj_bar_disp = unpack_right_shift_u8(src_p[19], 5u, 0xe0u);
    dst_p->longctrl_haz_actv = unpack_right_shift_u8(src_p[19], 3u, 0x18u);
    dst_p->tja_acc_sel_sts = unpack_right_shift_u8(src_p[19], 0u, 0x07u);
    dst_p->cru_cha_mod_disp = unpack_right_shift_u8(src_p[20], 4u, 0xf0u);
    dst_p->tja_ica_inter_sys_info_disp = unpack_right_shift_u8(src_p[20], 1u, 0x0eu);
    dst_p->tja_ica_mod_disp = unpack_right_shift_u8(src_p[21], 5u, 0xe0u);
    dst_p->isl_inter_sys_info_disp = unpack_right_shift_u8(src_p[21], 3u, 0x18u);
    dst_p->acc_time_gap_set = unpack_right_shift_u8(src_p[21], 0u, 0x07u);
    dst_p->acc_spd_set_value = unpack_right_shift_u8(src_p[22], 0u, 0xffu);
    dst_p->cru_char_inter_sys_info_disp = unpack_right_shift_u8(src_p[23], 4u, 0xf0u);
    dst_p->rolling_counter_acc4 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->checksum_acc8 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->hwa_mod_disp = unpack_right_shift_u8(src_p[25], 4u, 0xf0u);
    dst_p->hwa_inter_sys_info_disp = unpack_right_shift_u8(src_p[25], 0u, 0x0fu);
    dst_p->hwa_lane_change = unpack_right_shift_u8(src_p[26], 4u, 0x30u);
    dst_p->adas_driver_inloop_monitor = unpack_right_shift_u8(src_p[26], 1u, 0x0eu);
    dst_p->hwa_lane_change_req = unpack_right_shift_u8(src_p[27], 5u, 0xe0u);
    dst_p->hwa_warning = unpack_right_shift_u8(src_p[27], 0u, 0x03u);
    dst_p->longctrl_wheel_trq_req_dvr = unpack_left_shift_u16(src_p[28], 8u, 0xffu);
    dst_p->longctrl_wheel_trq_req_dvr |= unpack_right_shift_u16(src_p[29], 0u, 0xffu);
    dst_p->rolling_counter_acc8 = unpack_right_shift_u8(src_p[31], 0u, 0x0fu);
    dst_p->checksum_acc6 = unpack_right_shift_u8(src_p[32], 0u, 0xffu);
    dst_p->acc_potential_tgt_dy = unpack_right_shift_u8(src_p[33], 0u, 0xffu);
    dst_p->acc_potential_tgt_dx = unpack_left_shift_u16(src_p[34], 1u, 0xffu);
    dst_p->acc_potential_tgt_dx |= unpack_right_shift_u16(src_p[35], 7u, 0x80u);
    dst_p->acc_rlv_tgt_detn = unpack_right_shift_u8(src_p[35], 5u, 0x60u);
    dst_p->acc_ego_status = unpack_right_shift_u8(src_p[35], 3u, 0x18u);
    dst_p->acc_rlv_tgt_typ = unpack_right_shift_u8(src_p[35], 0u, 0x07u);
    dst_p->acc_rlv_tgt_dy = unpack_right_shift_u8(src_p[36], 0u, 0xffu);
    dst_p->acc_rlv_tgt_dx = unpack_left_shift_u16(src_p[37], 1u, 0xffu);
    dst_p->acc_rlv_tgt_dx |= unpack_right_shift_u16(src_p[38], 7u, 0x80u);
    dst_p->acc_potential_tgt_detn = unpack_right_shift_u8(src_p[38], 4u, 0x30u);
    dst_p->acc_potential_tgt_typ = unpack_right_shift_u8(src_p[38], 1u, 0x0eu);
    dst_p->intelligent_curve_act = unpack_right_shift_u8(src_p[39], 7u, 0x80u);
    dst_p->rolling_counter_acc6 = unpack_right_shift_u8(src_p[39], 0u, 0x0fu);
    dst_p->checksum_acc7 = unpack_right_shift_u8(src_p[40], 0u, 0xffu);
    dst_p->acc_le_tgt_dy = unpack_right_shift_u8(src_p[41], 0u, 0xffu);
    dst_p->acc_le_tgt_dx = unpack_left_shift_u16(src_p[42], 1u, 0xffu);
    dst_p->acc_le_tgt_dx |= unpack_right_shift_u16(src_p[43], 7u, 0x80u);
    dst_p->acc_le_tgt_typ = unpack_right_shift_u8(src_p[43], 4u, 0x70u);
    dst_p->acc_le_targrt_dection = unpack_right_shift_u8(src_p[43], 2u, 0x0cu);
    dst_p->acc_ri_targrt_detn = unpack_right_shift_u8(src_p[43], 0u, 0x03u);
    dst_p->acc_ri_tgt_dy = unpack_right_shift_u8(src_p[44], 0u, 0xffu);
    dst_p->acc_ri_tgt_dx = unpack_left_shift_u16(src_p[45], 1u, 0xffu);
    dst_p->acc_ri_tgt_dx |= unpack_right_shift_u16(src_p[46], 7u, 0x80u);
    dst_p->acc_ri_tgt_typ = unpack_right_shift_u8(src_p[46], 4u, 0x70u);
    dst_p->request_driveoff = unpack_right_shift_u8(src_p[47], 5u, 0xe0u);
    dst_p->acc_sts = unpack_right_shift_u8(src_p[47], 4u, 0x10u);
    dst_p->rolling_counter_acc7 = unpack_right_shift_u8(src_p[47], 0u, 0x0fu);
    dst_p->acc_rlv_tgtfusion = unpack_right_shift_u8(src_p[49], 7u, 0x80u);
    dst_p->acc_rlv_tgt_heading = unpack_right_shift_u8(src_p[49], 1u, 0x7eu);
    dst_p->acc_le_tgtfusion = unpack_right_shift_u8(src_p[49], 0u, 0x01u);
    dst_p->acc_le_tgt_heading = unpack_right_shift_u8(src_p[50], 2u, 0xfcu);
    dst_p->acc_ri_tgtfusion = unpack_right_shift_u8(src_p[50], 1u, 0x02u);
    dst_p->acc_potential_tgtfusion = unpack_right_shift_u8(src_p[50], 0u, 0x01u);
    dst_p->acc_ri_tgt_heading = unpack_right_shift_u8(src_p[51], 2u, 0xfcu);
    dst_p->acc_potential_tgt_heading = unpack_left_shift_u8(src_p[51], 4u, 0x03u);
    dst_p->acc_potential_tgt_heading |= unpack_right_shift_u8(src_p[52], 4u, 0xf0u);
    dst_p->target_cutin_pro = unpack_left_shift_u8(src_p[52], 2u, 0x0fu);
    dst_p->target_cutin_pro |= unpack_right_shift_u8(src_p[53], 6u, 0xc0u);
    dst_p->target_cutout_pro = unpack_right_shift_u8(src_p[53], 0u, 0x3fu);

    return (0);
}

int b30_001_acc_fd2_init(struct b30_001_acc_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_acc_fd2_t));
    msg_p->acc_le_tgt_02_dy = 0.0;
    msg_p->acc_le_tgt_02_dx = 0.0;
    msg_p->acc_le_tgt_02_typ = 0.0;
    msg_p->acc_le_targrt_02_detn = 0.0;
    msg_p->acc_ri_targrt_02_detn = 0.0;
    msg_p->acc_ri_tgt_02_dx = 0.0;
    msg_p->acc_le_tgt_obj_bar_disp = 0.0;
    msg_p->acc_ri_tgt_obj_bar_disp = 0.0;
    msg_p->acc_ri_tgt_02_dy = 0.0;
    msg_p->acc_ri_tgt_02_typ = 0.0;
    msg_p->checksum_acc3 = 0.0;
    msg_p->isl_resp = 0.0;
    msg_p->ica_hands_off_resp = 0.0;
    msg_p->hwa_resp = 0.0;
    msg_p->hwa_snvty_set_resp = 0.0;
    msg_p->alc_resp = 0.0;
    msg_p->longctrl_veh_hld_req_dvr = 0.0;
    msg_p->longctrl_drv_off_req_dvr = 0.0;
    msg_p->longctrl_mod_sts_dvr = 0.0;
    msg_p->longctrl_decel_req_dvr = 0.0;
    msg_p->longctrl_eng_trq_req_active_dvr = 0.0;
    msg_p->longctrl_eng_trq_req_dvr = 32767.0;
    msg_p->longctrl_decel_req_value_dvr = 0.0;
    msg_p->longctrl_decel_to_stop_req_dvr = 0.0;
    msg_p->longctrl_park_shift_req_dvr = 0.0;
    msg_p->longctrl_wheel_trq_req_active_dvr = 0.0;
    msg_p->alc_inter_sys_info_disp = 0.0;
    msg_p->rolling_counter_acc3 = 0.0;
    msg_p->checksum_acc4 = 0.0;
    msg_p->acc_obj_detecte = 0.0;
    msg_p->acc_take_over_req = 0.0;
    msg_p->acc_inter_sys_info_disp = 0.0;
    msg_p->acc_mod_disp = 0.0;
    msg_p->acc_fct_sts = 0.0;
    msg_p->acc_req_avm = 0.0;
    msg_p->acc_tgt_obj_bar_disp = 0.0;
    msg_p->longctrl_haz_actv = 0.0;
    msg_p->tja_acc_sel_sts = 0.0;
    msg_p->cru_cha_mod_disp = 0.0;
    msg_p->tja_ica_inter_sys_info_disp = 0.0;
    msg_p->tja_ica_mod_disp = 0.0;
    msg_p->isl_inter_sys_info_disp = 0.0;
    msg_p->acc_time_gap_set = 0.0;
    msg_p->acc_spd_set_value = 255.0;
    msg_p->cru_char_inter_sys_info_disp = 0.0;
    msg_p->rolling_counter_acc4 = 0.0;
    msg_p->checksum_acc8 = 0.0;
    msg_p->hwa_mod_disp = 0.0;
    msg_p->hwa_inter_sys_info_disp = 0.0;
    msg_p->hwa_lane_change = 0.0;
    msg_p->adas_driver_inloop_monitor = 0.0;
    msg_p->hwa_lane_change_req = 0.0;
    msg_p->hwa_warning = 0.0;
    msg_p->longctrl_wheel_trq_req_dvr = 0.0;
    msg_p->rolling_counter_acc8 = 0.0;
    msg_p->checksum_acc6 = 0.0;
    msg_p->acc_potential_tgt_dy = 0.0;
    msg_p->acc_potential_tgt_dx = 0.0;
    msg_p->acc_rlv_tgt_detn = 0.0;
    msg_p->acc_ego_status = 0.0;
    msg_p->acc_rlv_tgt_typ = 0.0;
    msg_p->acc_rlv_tgt_dy = 0.0;
    msg_p->acc_rlv_tgt_dx = 0.0;
    msg_p->acc_potential_tgt_detn = 0.0;
    msg_p->acc_potential_tgt_typ = 0.0;
    msg_p->intelligent_curve_act = 0.0;
    msg_p->rolling_counter_acc6 = 0.0;
    msg_p->checksum_acc7 = 0.0;
    msg_p->acc_le_tgt_dy = 0.0;
    msg_p->acc_le_tgt_dx = 0.0;
    msg_p->acc_le_tgt_typ = 0.0;
    msg_p->acc_le_targrt_dection = 0.0;
    msg_p->acc_ri_targrt_detn = 0.0;
    msg_p->acc_ri_tgt_dy = 0.0;
    msg_p->acc_ri_tgt_dx = 0.0;
    msg_p->acc_ri_tgt_typ = 0.0;
    msg_p->request_driveoff = 0.0;
    msg_p->acc_sts = 0.0;
    msg_p->rolling_counter_acc7 = 0.0;
    msg_p->acc_rlv_tgtfusion = 0.0;
    msg_p->acc_le_tgtfusion = 0.0;
    msg_p->acc_ri_tgtfusion = 0.0;
    msg_p->acc_potential_tgtfusion = 0.0;
    msg_p->target_cutin_pro = 0.0;
    msg_p->target_cutout_pro = 0.0;

    return 0;
}

uint8_t b30_001_acc_fd2_acc_le_tgt_02_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd2_acc_le_tgt_02_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd2_acc_le_tgt_02_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint16_t b30_001_acc_fd2_acc_le_tgt_02_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd2_acc_le_tgt_02_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd2_acc_le_tgt_02_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd2_acc_le_tgt_02_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_le_tgt_02_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_le_tgt_02_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_le_targrt_02_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_le_targrt_02_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_le_targrt_02_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_ri_targrt_02_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ri_targrt_02_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ri_targrt_02_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_acc_fd2_acc_ri_tgt_02_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd2_acc_ri_tgt_02_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd2_acc_ri_tgt_02_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd2_acc_le_tgt_obj_bar_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_le_tgt_obj_bar_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_le_tgt_obj_bar_disp_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgt_obj_bar_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ri_tgt_obj_bar_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ri_tgt_obj_bar_disp_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgt_02_dy_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_acc_fd2_acc_ri_tgt_02_dy_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_acc_fd2_acc_ri_tgt_02_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgt_02_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ri_tgt_02_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ri_tgt_02_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_checksum_acc3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_checksum_acc3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_checksum_acc3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_isl_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_isl_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_isl_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_ica_hands_off_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_ica_hands_off_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_ica_hands_off_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_hwa_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_hwa_snvty_set_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_snvty_set_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_snvty_set_resp_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_alc_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_alc_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_alc_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_longctrl_veh_hld_req_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_veh_hld_req_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_veh_hld_req_dvr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_longctrl_drv_off_req_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_drv_off_req_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_drv_off_req_dvr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_longctrl_mod_sts_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_mod_sts_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_mod_sts_dvr_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_longctrl_decel_req_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_decel_req_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_decel_req_dvr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_longctrl_eng_trq_req_active_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_eng_trq_req_active_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_eng_trq_req_active_dvr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd2_longctrl_eng_trq_req_dvr_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_acc_fd2_longctrl_eng_trq_req_dvr_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_acc_fd2_longctrl_eng_trq_req_dvr_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_longctrl_decel_req_value_dvr_encode(double value)
{
    return (uint8_t)((value - -7.0) / 0.05);
}

double b30_001_acc_fd2_longctrl_decel_req_value_dvr_decode(uint8_t value)
{
    return (((double)value * 0.05) + -7.0);
}

bool b30_001_acc_fd2_longctrl_decel_req_value_dvr_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_longctrl_decel_to_stop_req_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_decel_to_stop_req_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_decel_to_stop_req_dvr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_longctrl_park_shift_req_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_park_shift_req_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_park_shift_req_dvr_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_longctrl_wheel_trq_req_active_dvr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_wheel_trq_req_active_dvr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_wheel_trq_req_active_dvr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_alc_inter_sys_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_alc_inter_sys_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_alc_inter_sys_info_disp_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_rolling_counter_acc3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_rolling_counter_acc3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_rolling_counter_acc3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_checksum_acc4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_checksum_acc4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_checksum_acc4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_acc_obj_detecte_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_obj_detecte_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_obj_detecte_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_take_over_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_take_over_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_take_over_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_inter_sys_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_inter_sys_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_inter_sys_info_disp_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_acc_fd2_acc_mod_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_mod_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_mod_disp_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_acc_fd2_acc_fct_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_fct_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_fct_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_req_avm_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_req_avm_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_req_avm_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_tgt_obj_bar_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_tgt_obj_bar_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_tgt_obj_bar_disp_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_longctrl_haz_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_longctrl_haz_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_longctrl_haz_actv_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_tja_acc_sel_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_tja_acc_sel_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_tja_acc_sel_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_cru_cha_mod_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_cru_cha_mod_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_cru_cha_mod_disp_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_tja_ica_inter_sys_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_tja_ica_inter_sys_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_tja_ica_inter_sys_info_disp_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_tja_ica_mod_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_tja_ica_mod_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_tja_ica_mod_disp_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_isl_inter_sys_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_isl_inter_sys_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_isl_inter_sys_info_disp_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_time_gap_set_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_time_gap_set_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_time_gap_set_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_spd_set_value_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_spd_set_value_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_spd_set_value_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_cru_char_inter_sys_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_cru_char_inter_sys_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_cru_char_inter_sys_info_disp_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_rolling_counter_acc4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_rolling_counter_acc4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_rolling_counter_acc4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_checksum_acc8_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_checksum_acc8_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_checksum_acc8_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_hwa_mod_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_mod_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_mod_disp_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_hwa_inter_sys_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_inter_sys_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_inter_sys_info_disp_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_hwa_lane_change_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_lane_change_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_lane_change_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_adas_driver_inloop_monitor_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_adas_driver_inloop_monitor_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_adas_driver_inloop_monitor_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_hwa_lane_change_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_lane_change_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_lane_change_req_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_hwa_warning_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_hwa_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_hwa_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_acc_fd2_longctrl_wheel_trq_req_dvr_encode(double value)
{
    return (uint16_t)((value - -16384.0) / 0.5);
}

double b30_001_acc_fd2_longctrl_wheel_trq_req_dvr_decode(uint16_t value)
{
    return (((double)value * 0.5) + -16384.0);
}

bool b30_001_acc_fd2_longctrl_wheel_trq_req_dvr_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_rolling_counter_acc8_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_rolling_counter_acc8_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_rolling_counter_acc8_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_checksum_acc6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_checksum_acc6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_checksum_acc6_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_acc_potential_tgt_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd2_acc_potential_tgt_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd2_acc_potential_tgt_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint16_t b30_001_acc_fd2_acc_potential_tgt_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd2_acc_potential_tgt_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd2_acc_potential_tgt_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd2_acc_rlv_tgt_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_rlv_tgt_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_rlv_tgt_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_ego_status_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ego_status_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ego_status_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_rlv_tgt_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_rlv_tgt_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_rlv_tgt_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_rlv_tgt_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd2_acc_rlv_tgt_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd2_acc_rlv_tgt_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint16_t b30_001_acc_fd2_acc_rlv_tgt_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd2_acc_rlv_tgt_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd2_acc_rlv_tgt_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd2_acc_potential_tgt_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_potential_tgt_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_potential_tgt_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_potential_tgt_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_potential_tgt_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_potential_tgt_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_intelligent_curve_act_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_intelligent_curve_act_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_intelligent_curve_act_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_rolling_counter_acc6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_rolling_counter_acc6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_rolling_counter_acc6_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_checksum_acc7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_checksum_acc7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_checksum_acc7_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd2_acc_le_tgt_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd2_acc_le_tgt_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd2_acc_le_tgt_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint16_t b30_001_acc_fd2_acc_le_tgt_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd2_acc_le_tgt_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd2_acc_le_tgt_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd2_acc_le_tgt_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_le_tgt_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_le_tgt_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_le_targrt_dection_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_le_targrt_dection_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_le_targrt_dection_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_ri_targrt_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ri_targrt_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ri_targrt_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgt_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd2_acc_ri_tgt_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd2_acc_ri_tgt_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint16_t b30_001_acc_fd2_acc_ri_tgt_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd2_acc_ri_tgt_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd2_acc_ri_tgt_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgt_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ri_tgt_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ri_tgt_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_request_driveoff_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_request_driveoff_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_request_driveoff_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd2_acc_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_rolling_counter_acc7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_rolling_counter_acc7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_rolling_counter_acc7_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_acc_fd2_acc_rlv_tgtfusion_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_rlv_tgtfusion_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_rlv_tgtfusion_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_rlv_tgt_heading_encode(double value)
{
    return (uint8_t)((value - -1.5) / 0.05);
}

double b30_001_acc_fd2_acc_rlv_tgt_heading_decode(uint8_t value)
{
    return (((double)value * 0.05) + -1.5);
}

bool b30_001_acc_fd2_acc_rlv_tgt_heading_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd2_acc_le_tgtfusion_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_le_tgtfusion_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_le_tgtfusion_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_le_tgt_heading_encode(double value)
{
    return (uint8_t)((value - -1.5) / 0.05);
}

double b30_001_acc_fd2_acc_le_tgt_heading_decode(uint8_t value)
{
    return (((double)value * 0.05) + -1.5);
}

bool b30_001_acc_fd2_acc_le_tgt_heading_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgtfusion_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_ri_tgtfusion_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_ri_tgtfusion_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_potential_tgtfusion_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd2_acc_potential_tgtfusion_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd2_acc_potential_tgtfusion_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd2_acc_ri_tgt_heading_encode(double value)
{
    return (uint8_t)((value - -1.5) / 0.05);
}

double b30_001_acc_fd2_acc_ri_tgt_heading_decode(uint8_t value)
{
    return (((double)value * 0.05) + -1.5);
}

bool b30_001_acc_fd2_acc_ri_tgt_heading_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd2_acc_potential_tgt_heading_encode(double value)
{
    return (uint8_t)((value - -1.5) / 0.05);
}

double b30_001_acc_fd2_acc_potential_tgt_heading_decode(uint8_t value)
{
    return (((double)value * 0.05) + -1.5);
}

bool b30_001_acc_fd2_acc_potential_tgt_heading_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd2_target_cutin_pro_encode(double value)
{
    return (uint8_t)(value / 0.02);
}

double b30_001_acc_fd2_target_cutin_pro_decode(uint8_t value)
{
    return ((double)value * 0.02);
}

bool b30_001_acc_fd2_target_cutin_pro_is_in_range(uint8_t value)
{
    return (value <= 50u);
}

uint8_t b30_001_acc_fd2_target_cutout_pro_encode(double value)
{
    return (uint8_t)(value / 0.02);
}

double b30_001_acc_fd2_target_cutout_pro_decode(uint8_t value)
{
    return ((double)value * 0.02);
}

bool b30_001_acc_fd2_target_cutout_pro_is_in_range(uint8_t value)
{
    return (value <= 50u);
}

int b30_001_acc_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_acc_fd3_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->aeb_le_ped_dy, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->aeb_ri_ped_dy, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->aeb_le_cyclist_dy, 0u, 0xffu);
    dst_p[4] |= pack_left_shift_u8(src_p->aeb_ri_cyclist_dy, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->ja_ped_obj_exist, 2u, 0xfcu);
    dst_p[5] |= pack_left_shift_u8(src_p->aeb_le_ped_detn, 0u, 0x03u);
    dst_p[6] |= pack_left_shift_u8(src_p->aeb_le_ped_typ, 5u, 0xe0u);
    dst_p[6] |= pack_left_shift_u8(src_p->aeb_ri_ped_typ, 2u, 0x1cu);
    dst_p[6] |= pack_left_shift_u8(src_p->aeb_ri_ped_detn, 0u, 0x03u);
    dst_p[7] |= pack_left_shift_u8(src_p->aeb_le_ped_collisionprob, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->aeb_ri_ped_collisionprob, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->aeb_le_cyclist_collisionprob, 5u, 0x20u);
    dst_p[7] |= pack_left_shift_u8(src_p->aeb_ri_cyclist_collisionprob, 4u, 0x10u);
    dst_p[9] |= pack_left_shift_u8(src_p->aebja_obj_id, 0u, 0xffu);
    dst_p[10] |= pack_left_shift_u8(src_p->aebja_obj_exist, 2u, 0xfcu);
    dst_p[10] |= pack_left_shift_u8(src_p->aebja_obj_video_cfmd, 1u, 0x02u);
    dst_p[10] |= pack_left_shift_u8(src_p->ja_ped_obj_video_cfmd, 0u, 0x01u);
    dst_p[11] |= pack_right_shift_u16(src_p->aebja_obj_vx, 4u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->aebja_obj_vx, 4u, 0xf0u);
    dst_p[12] |= pack_right_shift_u16(src_p->aebja_obj_dx, 8u, 0x0fu);
    dst_p[13] |= pack_left_shift_u16(src_p->aebja_obj_dx, 0u, 0xffu);
    dst_p[14] |= pack_left_shift_u8(src_p->ja_ped_obj_id, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->aebja_obj_state, 5u, 0xe0u);
    dst_p[17] |= pack_right_shift_u16(src_p->aebja_obj_cnt_alive, 4u, 0xffu);
    dst_p[18] |= pack_left_shift_u16(src_p->aebja_obj_cnt_alive, 4u, 0xf0u);
    dst_p[18] |= pack_right_shift_u16(src_p->aebja_obj_dy, 7u, 0x0fu);
    dst_p[19] |= pack_left_shift_u16(src_p->aebja_obj_dy, 1u, 0xfeu);
    dst_p[19] |= pack_right_shift_u8(src_p->aebja_obj_obstcl, 4u, 0x01u);
    dst_p[20] |= pack_left_shift_u8(src_p->aebja_obj_obstcl, 4u, 0xf0u);
    dst_p[20] |= pack_right_shift_u16(src_p->aebja_obj_vy, 6u, 0x0fu);
    dst_p[21] |= pack_left_shift_u16(src_p->aebja_obj_vy, 2u, 0xfcu);
    dst_p[21] |= pack_right_shift_u16(src_p->aebja_obj_ax, 8u, 0x03u);
    dst_p[22] |= pack_left_shift_u16(src_p->aebja_obj_ax, 0u, 0xffu);
    dst_p[23] |= pack_left_shift_u8(src_p->ja_ped_obj_state, 5u, 0xe0u);
    dst_p[25] |= pack_right_shift_u16(src_p->aebja_obj_ay, 2u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->aebja_obj_ay, 6u, 0xc0u);
    dst_p[26] |= pack_left_shift_u8(src_p->ja_ped_obj_obstcl, 1u, 0x3eu);
    dst_p[27] |= pack_right_shift_u16(src_p->ja_ped_obj_dy, 3u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->ja_ped_obj_dy, 5u, 0xe0u);
    dst_p[28] |= pack_right_shift_u16(src_p->ja_ped_obj_dx, 7u, 0x1fu);
    dst_p[29] |= pack_left_shift_u16(src_p->ja_ped_obj_dx, 1u, 0xfeu);
    dst_p[30] |= pack_left_shift_u8(src_p->fcwaeb_jattc, 2u, 0xfcu);
    dst_p[33] |= pack_right_shift_u16(src_p->ja_ped_obj_vx, 4u, 0xffu);
    dst_p[34] |= pack_left_shift_u16(src_p->ja_ped_obj_vx, 4u, 0xf0u);
    dst_p[34] |= pack_right_shift_u16(src_p->ja_ped_obj_cnt_alive, 8u, 0x0fu);
    dst_p[35] |= pack_left_shift_u16(src_p->ja_ped_obj_cnt_alive, 0u, 0xffu);
    dst_p[36] |= pack_right_shift_u16(src_p->ja_ped_obj_vy, 2u, 0xffu);
    dst_p[37] |= pack_left_shift_u16(src_p->ja_ped_obj_vy, 6u, 0xc0u);
    dst_p[37] |= pack_right_shift_u16(src_p->ja_ped_obj_ay, 4u, 0x3fu);
    dst_p[38] |= pack_left_shift_u16(src_p->ja_ped_obj_ay, 4u, 0xf0u);
    dst_p[41] |= pack_right_shift_u16(src_p->ja_ped_obj_ax, 2u, 0xffu);
    dst_p[42] |= pack_left_shift_u16(src_p->ja_ped_obj_ax, 6u, 0xc0u);
    dst_p[45] |= pack_left_shift_u8(src_p->fcwaeb_long_ttc, 0u, 0x3fu);
    dst_p[46] |= pack_left_shift_u8(src_p->fcwaeb_crossing_ttc, 2u, 0xfcu);
    dst_p[49] |= pack_right_shift_u16(src_p->aeb_le_ped_dx, 1u, 0xffu);
    dst_p[50] |= pack_left_shift_u16(src_p->aeb_le_ped_dx, 7u, 0x80u);
    dst_p[50] |= pack_right_shift_u16(src_p->aeb_ri_ped_dx, 2u, 0x7fu);
    dst_p[51] |= pack_left_shift_u16(src_p->aeb_ri_ped_dx, 6u, 0xc0u);
    dst_p[51] |= pack_left_shift_u8(src_p->aeb_le_cyclist_detn, 4u, 0x30u);
    dst_p[51] |= pack_left_shift_u8(src_p->aeb_le_cyclist_typ, 1u, 0x0eu);
    dst_p[52] |= pack_right_shift_u16(src_p->aeb_le_cyclist_dx, 1u, 0xffu);
    dst_p[53] |= pack_left_shift_u16(src_p->aeb_le_cyclist_dx, 7u, 0x80u);
    dst_p[53] |= pack_left_shift_u8(src_p->aeb_ri_cyclist_detn, 5u, 0x60u);
    dst_p[53] |= pack_right_shift_u16(src_p->aeb_ri_cyclist_dx, 4u, 0x1fu);
    dst_p[54] |= pack_left_shift_u16(src_p->aeb_ri_cyclist_dx, 4u, 0xf0u);
    dst_p[54] |= pack_left_shift_u8(src_p->aeb_ri_cyclist_typ, 1u, 0x0eu);

    return (64);
}

int b30_001_acc_fd3_unpack(
    struct b30_001_acc_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->aeb_le_ped_dy = unpack_right_shift_u8(src_p[1], 0u, 0xffu);
    dst_p->aeb_ri_ped_dy = unpack_right_shift_u8(src_p[2], 0u, 0xffu);
    dst_p->aeb_le_cyclist_dy = unpack_right_shift_u8(src_p[3], 0u, 0xffu);
    dst_p->aeb_ri_cyclist_dy = unpack_right_shift_u8(src_p[4], 0u, 0xffu);
    dst_p->ja_ped_obj_exist = unpack_right_shift_u8(src_p[5], 2u, 0xfcu);
    dst_p->aeb_le_ped_detn = unpack_right_shift_u8(src_p[5], 0u, 0x03u);
    dst_p->aeb_le_ped_typ = unpack_right_shift_u8(src_p[6], 5u, 0xe0u);
    dst_p->aeb_ri_ped_typ = unpack_right_shift_u8(src_p[6], 2u, 0x1cu);
    dst_p->aeb_ri_ped_detn = unpack_right_shift_u8(src_p[6], 0u, 0x03u);
    dst_p->aeb_le_ped_collisionprob = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->aeb_ri_ped_collisionprob = unpack_right_shift_u8(src_p[7], 6u, 0x40u);
    dst_p->aeb_le_cyclist_collisionprob = unpack_right_shift_u8(src_p[7], 5u, 0x20u);
    dst_p->aeb_ri_cyclist_collisionprob = unpack_right_shift_u8(src_p[7], 4u, 0x10u);
    dst_p->aebja_obj_id = unpack_right_shift_u8(src_p[9], 0u, 0xffu);
    dst_p->aebja_obj_exist = unpack_right_shift_u8(src_p[10], 2u, 0xfcu);
    dst_p->aebja_obj_video_cfmd = unpack_right_shift_u8(src_p[10], 1u, 0x02u);
    dst_p->ja_ped_obj_video_cfmd = unpack_right_shift_u8(src_p[10], 0u, 0x01u);
    dst_p->aebja_obj_vx = unpack_left_shift_u16(src_p[11], 4u, 0xffu);
    dst_p->aebja_obj_vx |= unpack_right_shift_u16(src_p[12], 4u, 0xf0u);
    dst_p->aebja_obj_dx = unpack_left_shift_u16(src_p[12], 8u, 0x0fu);
    dst_p->aebja_obj_dx |= unpack_right_shift_u16(src_p[13], 0u, 0xffu);
    dst_p->ja_ped_obj_id = unpack_right_shift_u8(src_p[14], 0u, 0xffu);
    dst_p->aebja_obj_state = unpack_right_shift_u8(src_p[15], 5u, 0xe0u);
    dst_p->aebja_obj_cnt_alive = unpack_left_shift_u16(src_p[17], 4u, 0xffu);
    dst_p->aebja_obj_cnt_alive |= unpack_right_shift_u16(src_p[18], 4u, 0xf0u);
    dst_p->aebja_obj_dy = unpack_left_shift_u16(src_p[18], 7u, 0x0fu);
    dst_p->aebja_obj_dy |= unpack_right_shift_u16(src_p[19], 1u, 0xfeu);
    dst_p->aebja_obj_obstcl = unpack_left_shift_u8(src_p[19], 4u, 0x01u);
    dst_p->aebja_obj_obstcl |= unpack_right_shift_u8(src_p[20], 4u, 0xf0u);
    dst_p->aebja_obj_vy = unpack_left_shift_u16(src_p[20], 6u, 0x0fu);
    dst_p->aebja_obj_vy |= unpack_right_shift_u16(src_p[21], 2u, 0xfcu);
    dst_p->aebja_obj_ax = unpack_left_shift_u16(src_p[21], 8u, 0x03u);
    dst_p->aebja_obj_ax |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->ja_ped_obj_state = unpack_right_shift_u8(src_p[23], 5u, 0xe0u);
    dst_p->aebja_obj_ay = unpack_left_shift_u16(src_p[25], 2u, 0xffu);
    dst_p->aebja_obj_ay |= unpack_right_shift_u16(src_p[26], 6u, 0xc0u);
    dst_p->ja_ped_obj_obstcl = unpack_right_shift_u8(src_p[26], 1u, 0x3eu);
    dst_p->ja_ped_obj_dy = unpack_left_shift_u16(src_p[27], 3u, 0xffu);
    dst_p->ja_ped_obj_dy |= unpack_right_shift_u16(src_p[28], 5u, 0xe0u);
    dst_p->ja_ped_obj_dx = unpack_left_shift_u16(src_p[28], 7u, 0x1fu);
    dst_p->ja_ped_obj_dx |= unpack_right_shift_u16(src_p[29], 1u, 0xfeu);
    dst_p->fcwaeb_jattc = unpack_right_shift_u8(src_p[30], 2u, 0xfcu);
    dst_p->ja_ped_obj_vx = unpack_left_shift_u16(src_p[33], 4u, 0xffu);
    dst_p->ja_ped_obj_vx |= unpack_right_shift_u16(src_p[34], 4u, 0xf0u);
    dst_p->ja_ped_obj_cnt_alive = unpack_left_shift_u16(src_p[34], 8u, 0x0fu);
    dst_p->ja_ped_obj_cnt_alive |= unpack_right_shift_u16(src_p[35], 0u, 0xffu);
    dst_p->ja_ped_obj_vy = unpack_left_shift_u16(src_p[36], 2u, 0xffu);
    dst_p->ja_ped_obj_vy |= unpack_right_shift_u16(src_p[37], 6u, 0xc0u);
    dst_p->ja_ped_obj_ay = unpack_left_shift_u16(src_p[37], 4u, 0x3fu);
    dst_p->ja_ped_obj_ay |= unpack_right_shift_u16(src_p[38], 4u, 0xf0u);
    dst_p->ja_ped_obj_ax = unpack_left_shift_u16(src_p[41], 2u, 0xffu);
    dst_p->ja_ped_obj_ax |= unpack_right_shift_u16(src_p[42], 6u, 0xc0u);
    dst_p->fcwaeb_long_ttc = unpack_right_shift_u8(src_p[45], 0u, 0x3fu);
    dst_p->fcwaeb_crossing_ttc = unpack_right_shift_u8(src_p[46], 2u, 0xfcu);
    dst_p->aeb_le_ped_dx = unpack_left_shift_u16(src_p[49], 1u, 0xffu);
    dst_p->aeb_le_ped_dx |= unpack_right_shift_u16(src_p[50], 7u, 0x80u);
    dst_p->aeb_ri_ped_dx = unpack_left_shift_u16(src_p[50], 2u, 0x7fu);
    dst_p->aeb_ri_ped_dx |= unpack_right_shift_u16(src_p[51], 6u, 0xc0u);
    dst_p->aeb_le_cyclist_detn = unpack_right_shift_u8(src_p[51], 4u, 0x30u);
    dst_p->aeb_le_cyclist_typ = unpack_right_shift_u8(src_p[51], 1u, 0x0eu);
    dst_p->aeb_le_cyclist_dx = unpack_left_shift_u16(src_p[52], 1u, 0xffu);
    dst_p->aeb_le_cyclist_dx |= unpack_right_shift_u16(src_p[53], 7u, 0x80u);
    dst_p->aeb_ri_cyclist_detn = unpack_right_shift_u8(src_p[53], 5u, 0x60u);
    dst_p->aeb_ri_cyclist_dx = unpack_left_shift_u16(src_p[53], 4u, 0x1fu);
    dst_p->aeb_ri_cyclist_dx |= unpack_right_shift_u16(src_p[54], 4u, 0xf0u);
    dst_p->aeb_ri_cyclist_typ = unpack_right_shift_u8(src_p[54], 1u, 0x0eu);

    return (0);
}

int b30_001_acc_fd3_init(struct b30_001_acc_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_acc_fd3_t));
    msg_p->aeb_le_ped_dy = 0.0;
    msg_p->aeb_ri_ped_dy = 0.0;
    msg_p->aeb_le_cyclist_dy = 0.0;
    msg_p->aeb_ri_cyclist_dy = 0.0;
    msg_p->ja_ped_obj_exist = 0.0;
    msg_p->aeb_le_ped_detn = 0.0;
    msg_p->aeb_le_ped_typ = 0.0;
    msg_p->aeb_ri_ped_typ = 0.0;
    msg_p->aeb_ri_ped_detn = 0.0;
    msg_p->aeb_le_ped_collisionprob = 0.0;
    msg_p->aeb_ri_ped_collisionprob = 0.0;
    msg_p->aeb_le_cyclist_collisionprob = 0.0;
    msg_p->aeb_ri_cyclist_collisionprob = 0.0;
    msg_p->aebja_obj_id = 255.0;
    msg_p->aebja_obj_exist = 0.0;
    msg_p->aebja_obj_video_cfmd = 0.0;
    msg_p->ja_ped_obj_video_cfmd = 0.0;
    msg_p->aebja_obj_vx = 0.0;
    msg_p->aebja_obj_dx = 0.0;
    msg_p->ja_ped_obj_id = 255.0;
    msg_p->aebja_obj_state = 0.0;
    msg_p->aebja_obj_cnt_alive = 0.0;
    msg_p->aebja_obj_dy = 0.0;
    msg_p->aebja_obj_obstcl = 0.0;
    msg_p->aebja_obj_vy = 0.0;
    msg_p->aebja_obj_ax = 0.0;
    msg_p->ja_ped_obj_state = 0.0;
    msg_p->aebja_obj_ay = 0.0;
    msg_p->ja_ped_obj_obstcl = 0.0;
    msg_p->ja_ped_obj_dy = 0.0;
    msg_p->ja_ped_obj_dx = 0.0;
    msg_p->fcwaeb_jattc = 0.0;
    msg_p->ja_ped_obj_vx = 0.0;
    msg_p->ja_ped_obj_cnt_alive = 0.0;
    msg_p->ja_ped_obj_vy = 0.0;
    msg_p->ja_ped_obj_ay = 0.0;
    msg_p->ja_ped_obj_ax = 0.0;
    msg_p->fcwaeb_long_ttc = 0.0;
    msg_p->fcwaeb_crossing_ttc = 0.0;
    msg_p->aeb_le_ped_dx = 0.0;
    msg_p->aeb_ri_ped_dx = 0.0;
    msg_p->aeb_le_cyclist_detn = 0.0;
    msg_p->aeb_le_cyclist_typ = 0.0;
    msg_p->aeb_le_cyclist_dx = 0.0;
    msg_p->aeb_ri_cyclist_detn = 0.0;
    msg_p->aeb_ri_cyclist_dx = 0.0;
    msg_p->aeb_ri_cyclist_typ = 0.0;

    return 0;
}

uint8_t b30_001_acc_fd3_aeb_le_ped_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd3_aeb_le_ped_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd3_aeb_le_ped_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint8_t b30_001_acc_fd3_aeb_ri_ped_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd3_aeb_ri_ped_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd3_aeb_ri_ped_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint8_t b30_001_acc_fd3_aeb_le_cyclist_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd3_aeb_le_cyclist_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd3_aeb_le_cyclist_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint8_t b30_001_acc_fd3_aeb_ri_cyclist_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_acc_fd3_aeb_ri_cyclist_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_acc_fd3_aeb_ri_cyclist_dy_is_in_range(uint8_t value)
{
    return (value <= 160u);
}

uint8_t b30_001_acc_fd3_ja_ped_obj_exist_encode(double value)
{
    return (uint8_t)(value / 0.015625);
}

double b30_001_acc_fd3_ja_ped_obj_exist_decode(uint8_t value)
{
    return ((double)value * 0.015625);
}

bool b30_001_acc_fd3_ja_ped_obj_exist_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_acc_fd3_aeb_le_ped_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_le_ped_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_le_ped_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd3_aeb_le_ped_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_le_ped_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_le_ped_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd3_aeb_ri_ped_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_ri_ped_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_ri_ped_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd3_aeb_ri_ped_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_ri_ped_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_ri_ped_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd3_aeb_le_ped_collisionprob_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_le_ped_collisionprob_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_le_ped_collisionprob_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd3_aeb_ri_ped_collisionprob_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_ri_ped_collisionprob_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_ri_ped_collisionprob_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd3_aeb_le_cyclist_collisionprob_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_le_cyclist_collisionprob_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_le_cyclist_collisionprob_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd3_aeb_ri_cyclist_collisionprob_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_ri_cyclist_collisionprob_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_ri_cyclist_collisionprob_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd3_aebja_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aebja_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aebja_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd3_aebja_obj_exist_encode(double value)
{
    return (uint8_t)(value / 0.015625);
}

double b30_001_acc_fd3_aebja_obj_exist_decode(uint8_t value)
{
    return ((double)value * 0.015625);
}

bool b30_001_acc_fd3_aebja_obj_exist_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_acc_fd3_aebja_obj_video_cfmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aebja_obj_video_cfmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aebja_obj_video_cfmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd3_ja_ped_obj_video_cfmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_ja_ped_obj_video_cfmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_ja_ped_obj_video_cfmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd3_aebja_obj_vx_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0625);
}

double b30_001_acc_fd3_aebja_obj_vx_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -128.0);
}

bool b30_001_acc_fd3_aebja_obj_vx_is_in_range(uint16_t value)
{
    return (value <= 4080u);
}

uint16_t b30_001_acc_fd3_aebja_obj_dx_encode(double value)
{
    return (uint16_t)(value / 0.0625);
}

double b30_001_acc_fd3_aebja_obj_dx_decode(uint16_t value)
{
    return ((double)value * 0.0625);
}

bool b30_001_acc_fd3_aebja_obj_dx_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint8_t b30_001_acc_fd3_ja_ped_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_ja_ped_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_ja_ped_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd3_aebja_obj_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aebja_obj_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aebja_obj_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_acc_fd3_aebja_obj_cnt_alive_encode(double value)
{
    return (uint16_t)(value / 17.0);
}

double b30_001_acc_fd3_aebja_obj_cnt_alive_decode(uint16_t value)
{
    return ((double)value * 17.0);
}

bool b30_001_acc_fd3_aebja_obj_cnt_alive_is_in_range(uint16_t value)
{
    return (value <= 3855u);
}

uint16_t b30_001_acc_fd3_aebja_obj_dy_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.125);
}

double b30_001_acc_fd3_aebja_obj_dy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -128.0);
}

bool b30_001_acc_fd3_aebja_obj_dy_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint8_t b30_001_acc_fd3_aebja_obj_obstcl_encode(double value)
{
    return (uint8_t)(value / 0.03125);
}

double b30_001_acc_fd3_aebja_obj_obstcl_decode(uint8_t value)
{
    return ((double)value * 0.03125);
}

bool b30_001_acc_fd3_aebja_obj_obstcl_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_acc_fd3_aebja_obj_vy_encode(double value)
{
    return (uint16_t)((value - -64.0) / 0.125);
}

double b30_001_acc_fd3_aebja_obj_vy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -64.0);
}

bool b30_001_acc_fd3_aebja_obj_vy_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd3_aebja_obj_ax_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd3_aebja_obj_ax_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd3_aebja_obj_ax_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd3_ja_ped_obj_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_ja_ped_obj_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_ja_ped_obj_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_acc_fd3_aebja_obj_ay_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd3_aebja_obj_ay_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd3_aebja_obj_ay_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd3_ja_ped_obj_obstcl_encode(double value)
{
    return (uint8_t)(value / 0.03125);
}

double b30_001_acc_fd3_ja_ped_obj_obstcl_decode(uint8_t value)
{
    return ((double)value * 0.03125);
}

bool b30_001_acc_fd3_ja_ped_obj_obstcl_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_dy_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.125);
}

double b30_001_acc_fd3_ja_ped_obj_dy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -128.0);
}

bool b30_001_acc_fd3_ja_ped_obj_dy_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_dx_encode(double value)
{
    return (uint16_t)(value / 0.0625);
}

double b30_001_acc_fd3_ja_ped_obj_dx_decode(uint16_t value)
{
    return ((double)value * 0.0625);
}

bool b30_001_acc_fd3_ja_ped_obj_dx_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint8_t b30_001_acc_fd3_fcwaeb_jattc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_acc_fd3_fcwaeb_jattc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_acc_fd3_fcwaeb_jattc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_vx_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0625);
}

double b30_001_acc_fd3_ja_ped_obj_vx_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -128.0);
}

bool b30_001_acc_fd3_ja_ped_obj_vx_is_in_range(uint16_t value)
{
    return (value <= 4080u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_cnt_alive_encode(double value)
{
    return (uint16_t)(value / 17.0);
}

double b30_001_acc_fd3_ja_ped_obj_cnt_alive_decode(uint16_t value)
{
    return ((double)value * 17.0);
}

bool b30_001_acc_fd3_ja_ped_obj_cnt_alive_is_in_range(uint16_t value)
{
    return (value <= 3855u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_vy_encode(double value)
{
    return (uint16_t)((value - -64.0) / 0.125);
}

double b30_001_acc_fd3_ja_ped_obj_vy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -64.0);
}

bool b30_001_acc_fd3_ja_ped_obj_vy_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_ay_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd3_ja_ped_obj_ay_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd3_ja_ped_obj_ay_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd3_ja_ped_obj_ax_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd3_ja_ped_obj_ax_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd3_ja_ped_obj_ax_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd3_fcwaeb_long_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_acc_fd3_fcwaeb_long_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_acc_fd3_fcwaeb_long_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_acc_fd3_fcwaeb_crossing_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_acc_fd3_fcwaeb_crossing_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_acc_fd3_fcwaeb_crossing_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_acc_fd3_aeb_le_ped_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd3_aeb_le_ped_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd3_aeb_le_ped_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint16_t b30_001_acc_fd3_aeb_ri_ped_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd3_aeb_ri_ped_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd3_aeb_ri_ped_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd3_aeb_le_cyclist_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_le_cyclist_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_le_cyclist_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd3_aeb_le_cyclist_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_le_cyclist_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_le_cyclist_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_acc_fd3_aeb_le_cyclist_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd3_aeb_le_cyclist_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd3_aeb_le_cyclist_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd3_aeb_ri_cyclist_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_ri_cyclist_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_ri_cyclist_detn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_acc_fd3_aeb_ri_cyclist_dx_encode(double value)
{
    return (uint16_t)(value / 0.5);
}

double b30_001_acc_fd3_aeb_ri_cyclist_dx_decode(uint16_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_acc_fd3_aeb_ri_cyclist_dx_is_in_range(uint16_t value)
{
    return (value <= 300u);
}

uint8_t b30_001_acc_fd3_aeb_ri_cyclist_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd3_aeb_ri_cyclist_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd3_aeb_ri_cyclist_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_acc_fd4_pack(
    uint8_t *dst_p,
    const struct b30_001_acc_fd4_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->aeb_obj_id, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->aeb_obj_exist, 2u, 0xfcu);
    dst_p[1] |= pack_left_shift_u8(src_p->aeb_obj_video_cfmd, 1u, 0x02u);
    dst_p[2] |= pack_right_shift_u16(src_p->aeb_obj_vx, 4u, 0xffu);
    dst_p[3] |= pack_left_shift_u16(src_p->aeb_obj_vx, 4u, 0xf0u);
    dst_p[3] |= pack_right_shift_u16(src_p->aeb_obj_dx, 8u, 0x0fu);
    dst_p[4] |= pack_left_shift_u16(src_p->aeb_obj_dx, 0u, 0xffu);
    dst_p[5] |= pack_right_shift_u16(src_p->aeb_obj_cnt_alive, 4u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->aeb_obj_cnt_alive, 4u, 0xf0u);
    dst_p[6] |= pack_right_shift_u16(src_p->aeb_obj_dy, 8u, 0x07u);
    dst_p[7] |= pack_left_shift_u16(src_p->aeb_obj_dy, 0u, 0xffu);
    dst_p[8] |= pack_left_shift_u8(src_p->aeb_obj_state, 5u, 0xe0u);
    dst_p[8] |= pack_left_shift_u8(src_p->aeb_obj_obstcl, 0u, 0x1fu);
    dst_p[9] |= pack_right_shift_u16(src_p->aeb_obj_vy, 2u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->aeb_obj_vy, 6u, 0xc0u);
    dst_p[10] |= pack_left_shift_u8(src_p->cyclist_obj_exist, 0u, 0x3fu);
    dst_p[11] |= pack_right_shift_u16(src_p->aeb_obj_ax, 2u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->aeb_obj_ax, 6u, 0xc0u);
    dst_p[12] |= pack_right_shift_u16(src_p->aeb_obj_ay, 4u, 0x3fu);
    dst_p[13] |= pack_left_shift_u16(src_p->aeb_obj_ay, 4u, 0xf0u);
    dst_p[13] |= pack_right_shift_u16(src_p->cyclist_obj_dx, 8u, 0x0fu);
    dst_p[14] |= pack_left_shift_u16(src_p->cyclist_obj_dx, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->cyclist_obj_id, 0u, 0xffu);
    dst_p[16] |= pack_left_shift_u8(src_p->cyclist_obj_obstcl, 3u, 0xf8u);
    dst_p[16] |= pack_right_shift_u16(src_p->cyclist_obj_dy, 8u, 0x07u);
    dst_p[17] |= pack_left_shift_u16(src_p->cyclist_obj_dy, 0u, 0xffu);
    dst_p[18] |= pack_right_shift_u16(src_p->cyclist_obj_vx, 4u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->cyclist_obj_vx, 4u, 0xf0u);
    dst_p[19] |= pack_right_shift_u16(src_p->cyclist_obj_cnt_alive, 8u, 0x0fu);
    dst_p[20] |= pack_left_shift_u16(src_p->cyclist_obj_cnt_alive, 0u, 0xffu);
    dst_p[21] |= pack_right_shift_u16(src_p->cyclist_obj_vy, 2u, 0xffu);
    dst_p[22] |= pack_left_shift_u16(src_p->cyclist_obj_vy, 6u, 0xc0u);
    dst_p[22] |= pack_left_shift_u8(src_p->cyclist_obj_state, 3u, 0x38u);
    dst_p[22] |= pack_left_shift_u8(src_p->cyclist_obj_video_cfmd, 2u, 0x04u);
    dst_p[22] |= pack_right_shift_u16(src_p->cyclist_obj_ax, 8u, 0x03u);
    dst_p[23] |= pack_left_shift_u16(src_p->cyclist_obj_ax, 0u, 0xffu);
    dst_p[24] |= pack_right_shift_u16(src_p->cyclist_obj_ay, 2u, 0xffu);
    dst_p[25] |= pack_left_shift_u16(src_p->cyclist_obj_ay, 6u, 0xc0u);
    dst_p[25] |= pack_left_shift_u8(src_p->ped_obj_exist, 0u, 0x3fu);
    dst_p[26] |= pack_left_shift_u8(src_p->ped_obj_id, 0u, 0xffu);
    dst_p[27] |= pack_left_shift_u8(src_p->ped_obj_obstcl, 3u, 0xf8u);
    dst_p[27] |= pack_right_shift_u16(src_p->ped_obj_dy, 8u, 0x07u);
    dst_p[28] |= pack_left_shift_u16(src_p->ped_obj_dy, 0u, 0xffu);
    dst_p[29] |= pack_right_shift_u16(src_p->ped_obj_dx, 4u, 0xffu);
    dst_p[30] |= pack_left_shift_u16(src_p->ped_obj_dx, 4u, 0xf0u);
    dst_p[30] |= pack_right_shift_u16(src_p->ped_obj_vx, 8u, 0x0fu);
    dst_p[31] |= pack_left_shift_u16(src_p->ped_obj_vx, 0u, 0xffu);
    dst_p[32] |= pack_right_shift_u16(src_p->ped_obj_vy, 2u, 0xffu);
    dst_p[33] |= pack_left_shift_u16(src_p->ped_obj_vy, 6u, 0xc0u);
    dst_p[33] |= pack_left_shift_u8(src_p->ped_obj_video_cfmd, 5u, 0x20u);
    dst_p[33] |= pack_right_shift_u16(src_p->acc_tgt_obj_dx, 8u, 0x0fu);
    dst_p[34] |= pack_left_shift_u16(src_p->acc_tgt_obj_dx, 0u, 0xffu);
    dst_p[35] |= pack_right_shift_u16(src_p->ped_obj_ay, 2u, 0xffu);
    dst_p[36] |= pack_left_shift_u16(src_p->ped_obj_ay, 6u, 0xc0u);
    dst_p[36] |= pack_right_shift_u16(src_p->ped_obj_cnt_alive, 6u, 0x3fu);
    dst_p[37] |= pack_left_shift_u16(src_p->ped_obj_cnt_alive, 2u, 0xfcu);
    dst_p[37] |= pack_right_shift_u16(src_p->ped_obj_ax, 8u, 0x03u);
    dst_p[38] |= pack_left_shift_u16(src_p->ped_obj_ax, 0u, 0xffu);
    dst_p[39] |= pack_left_shift_u8(src_p->acc_tgt_obj_id, 0u, 0xffu);
    dst_p[40] |= pack_left_shift_u8(src_p->acc_tgt_obj_obstcl, 3u, 0xf8u);
    dst_p[40] |= pack_right_shift_u16(src_p->acc_tgt_obj_dy, 8u, 0x07u);
    dst_p[41] |= pack_left_shift_u16(src_p->acc_tgt_obj_dy, 0u, 0xffu);
    dst_p[42] |= pack_left_shift_u8(src_p->acc_tgt_obj_exist, 2u, 0xfcu);
    dst_p[42] |= pack_right_shift_u16(src_p->acc_tgt_obj_vy, 8u, 0x03u);
    dst_p[43] |= pack_left_shift_u16(src_p->acc_tgt_obj_vy, 0u, 0xffu);
    dst_p[44] |= pack_right_shift_u16(src_p->acc_tgt_obj_vx, 4u, 0xffu);
    dst_p[45] |= pack_left_shift_u16(src_p->acc_tgt_obj_vx, 4u, 0xf0u);
    dst_p[45] |= pack_right_shift_u16(src_p->acc_tgt_obj_ax, 6u, 0x0fu);
    dst_p[46] |= pack_left_shift_u16(src_p->acc_tgt_obj_ax, 2u, 0xfcu);
    dst_p[46] |= pack_right_shift_u16(src_p->acc_tgt_obj_ay, 8u, 0x03u);
    dst_p[47] |= pack_left_shift_u16(src_p->acc_tgt_obj_ay, 0u, 0xffu);
    dst_p[48] |= pack_left_shift_u8(src_p->acc_tgt_obj_state, 5u, 0xe0u);
    dst_p[48] |= pack_left_shift_u8(src_p->acc_tgt_obj_video_cfmd, 4u, 0x10u);
    dst_p[48] |= pack_right_shift_u16(src_p->acc_tgt_obj_cnt_alive, 8u, 0x0fu);
    dst_p[49] |= pack_left_shift_u16(src_p->acc_tgt_obj_cnt_alive, 0u, 0xffu);
    dst_p[50] |= pack_right_shift_u16(src_p->radar_hor_misalign, 4u, 0xffu);
    dst_p[51] |= pack_left_shift_u16(src_p->radar_hor_misalign, 4u, 0xf0u);
    dst_p[51] |= pack_left_shift_u8(src_p->handsoff_detd, 2u, 0x0cu);
    dst_p[51] |= pack_left_shift_u8(src_p->drvg_on_hi_way, 0u, 0x03u);
    dst_p[52] |= pack_right_shift_u16(src_p->road_crvt, 2u, 0xffu);
    dst_p[53] |= pack_left_shift_u16(src_p->road_crvt, 6u, 0xc0u);
    dst_p[53] |= pack_left_shift_u8(src_p->spd_limit_dst, 0u, 0x3fu);
    dst_p[54] |= pack_right_shift_u16(src_p->road_crvt_far, 2u, 0xffu);
    dst_p[55] |= pack_left_shift_u16(src_p->road_crvt_far, 6u, 0xc0u);
    dst_p[55] |= pack_left_shift_u8(src_p->ramp_dst, 0u, 0x3fu);
    dst_p[56] |= pack_left_shift_u8(src_p->spd_limit, 0u, 0xffu);
    dst_p[57] |= pack_left_shift_u8(src_p->curve_dst, 2u, 0xfcu);
    dst_p[57] |= pack_left_shift_u8(src_p->nav_spd_lim_unit, 0u, 0x03u);
    dst_p[58] |= pack_left_shift_u8(src_p->tunnel_dst, 2u, 0xfcu);
    dst_p[58] |= pack_left_shift_u8(src_p->drvg_on_ri_lane, 0u, 0x03u);
    dst_p[59] |= pack_left_shift_u8(src_p->brdg_dst, 2u, 0xfcu);
    dst_p[59] |= pack_left_shift_u8(src_p->radar_drvr_attentive, 1u, 0x02u);
    dst_p[60] |= pack_left_shift_u8(src_p->acc_data_rec_req, 5u, 0xe0u);
    dst_p[60] |= pack_left_shift_u8(src_p->acc_sos_req, 3u, 0x18u);
    dst_p[60] |= pack_left_shift_u8(src_p->ped_obj_state, 0u, 0x07u);
    dst_p[61] |= pack_left_shift_u8(src_p->map_data_valid, 7u, 0x80u);
    dst_p[61] |= pack_left_shift_u8(src_p->drvr_sts, 4u, 0x70u);
    dst_p[61] |= pack_right_shift_u8(src_p->aeb_obj_overlap, 1u, 0x0fu);
    dst_p[62] |= pack_left_shift_u8(src_p->aeb_obj_overlap, 7u, 0x80u);
    dst_p[62] |= pack_left_shift_u8(src_p->aeb_obj_drvby, 2u, 0x7cu);

    return (64);
}

int b30_001_acc_fd4_unpack(
    struct b30_001_acc_fd4_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->aeb_obj_id = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->aeb_obj_exist = unpack_right_shift_u8(src_p[1], 2u, 0xfcu);
    dst_p->aeb_obj_video_cfmd = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->aeb_obj_vx = unpack_left_shift_u16(src_p[2], 4u, 0xffu);
    dst_p->aeb_obj_vx |= unpack_right_shift_u16(src_p[3], 4u, 0xf0u);
    dst_p->aeb_obj_dx = unpack_left_shift_u16(src_p[3], 8u, 0x0fu);
    dst_p->aeb_obj_dx |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->aeb_obj_cnt_alive = unpack_left_shift_u16(src_p[5], 4u, 0xffu);
    dst_p->aeb_obj_cnt_alive |= unpack_right_shift_u16(src_p[6], 4u, 0xf0u);
    dst_p->aeb_obj_dy = unpack_left_shift_u16(src_p[6], 8u, 0x07u);
    dst_p->aeb_obj_dy |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);
    dst_p->aeb_obj_state = unpack_right_shift_u8(src_p[8], 5u, 0xe0u);
    dst_p->aeb_obj_obstcl = unpack_right_shift_u8(src_p[8], 0u, 0x1fu);
    dst_p->aeb_obj_vy = unpack_left_shift_u16(src_p[9], 2u, 0xffu);
    dst_p->aeb_obj_vy |= unpack_right_shift_u16(src_p[10], 6u, 0xc0u);
    dst_p->cyclist_obj_exist = unpack_right_shift_u8(src_p[10], 0u, 0x3fu);
    dst_p->aeb_obj_ax = unpack_left_shift_u16(src_p[11], 2u, 0xffu);
    dst_p->aeb_obj_ax |= unpack_right_shift_u16(src_p[12], 6u, 0xc0u);
    dst_p->aeb_obj_ay = unpack_left_shift_u16(src_p[12], 4u, 0x3fu);
    dst_p->aeb_obj_ay |= unpack_right_shift_u16(src_p[13], 4u, 0xf0u);
    dst_p->cyclist_obj_dx = unpack_left_shift_u16(src_p[13], 8u, 0x0fu);
    dst_p->cyclist_obj_dx |= unpack_right_shift_u16(src_p[14], 0u, 0xffu);
    dst_p->cyclist_obj_id = unpack_right_shift_u8(src_p[15], 0u, 0xffu);
    dst_p->cyclist_obj_obstcl = unpack_right_shift_u8(src_p[16], 3u, 0xf8u);
    dst_p->cyclist_obj_dy = unpack_left_shift_u16(src_p[16], 8u, 0x07u);
    dst_p->cyclist_obj_dy |= unpack_right_shift_u16(src_p[17], 0u, 0xffu);
    dst_p->cyclist_obj_vx = unpack_left_shift_u16(src_p[18], 4u, 0xffu);
    dst_p->cyclist_obj_vx |= unpack_right_shift_u16(src_p[19], 4u, 0xf0u);
    dst_p->cyclist_obj_cnt_alive = unpack_left_shift_u16(src_p[19], 8u, 0x0fu);
    dst_p->cyclist_obj_cnt_alive |= unpack_right_shift_u16(src_p[20], 0u, 0xffu);
    dst_p->cyclist_obj_vy = unpack_left_shift_u16(src_p[21], 2u, 0xffu);
    dst_p->cyclist_obj_vy |= unpack_right_shift_u16(src_p[22], 6u, 0xc0u);
    dst_p->cyclist_obj_state = unpack_right_shift_u8(src_p[22], 3u, 0x38u);
    dst_p->cyclist_obj_video_cfmd = unpack_right_shift_u8(src_p[22], 2u, 0x04u);
    dst_p->cyclist_obj_ax = unpack_left_shift_u16(src_p[22], 8u, 0x03u);
    dst_p->cyclist_obj_ax |= unpack_right_shift_u16(src_p[23], 0u, 0xffu);
    dst_p->cyclist_obj_ay = unpack_left_shift_u16(src_p[24], 2u, 0xffu);
    dst_p->cyclist_obj_ay |= unpack_right_shift_u16(src_p[25], 6u, 0xc0u);
    dst_p->ped_obj_exist = unpack_right_shift_u8(src_p[25], 0u, 0x3fu);
    dst_p->ped_obj_id = unpack_right_shift_u8(src_p[26], 0u, 0xffu);
    dst_p->ped_obj_obstcl = unpack_right_shift_u8(src_p[27], 3u, 0xf8u);
    dst_p->ped_obj_dy = unpack_left_shift_u16(src_p[27], 8u, 0x07u);
    dst_p->ped_obj_dy |= unpack_right_shift_u16(src_p[28], 0u, 0xffu);
    dst_p->ped_obj_dx = unpack_left_shift_u16(src_p[29], 4u, 0xffu);
    dst_p->ped_obj_dx |= unpack_right_shift_u16(src_p[30], 4u, 0xf0u);
    dst_p->ped_obj_vx = unpack_left_shift_u16(src_p[30], 8u, 0x0fu);
    dst_p->ped_obj_vx |= unpack_right_shift_u16(src_p[31], 0u, 0xffu);
    dst_p->ped_obj_vy = unpack_left_shift_u16(src_p[32], 2u, 0xffu);
    dst_p->ped_obj_vy |= unpack_right_shift_u16(src_p[33], 6u, 0xc0u);
    dst_p->ped_obj_video_cfmd = unpack_right_shift_u8(src_p[33], 5u, 0x20u);
    dst_p->acc_tgt_obj_dx = unpack_left_shift_u16(src_p[33], 8u, 0x0fu);
    dst_p->acc_tgt_obj_dx |= unpack_right_shift_u16(src_p[34], 0u, 0xffu);
    dst_p->ped_obj_ay = unpack_left_shift_u16(src_p[35], 2u, 0xffu);
    dst_p->ped_obj_ay |= unpack_right_shift_u16(src_p[36], 6u, 0xc0u);
    dst_p->ped_obj_cnt_alive = unpack_left_shift_u16(src_p[36], 6u, 0x3fu);
    dst_p->ped_obj_cnt_alive |= unpack_right_shift_u16(src_p[37], 2u, 0xfcu);
    dst_p->ped_obj_ax = unpack_left_shift_u16(src_p[37], 8u, 0x03u);
    dst_p->ped_obj_ax |= unpack_right_shift_u16(src_p[38], 0u, 0xffu);
    dst_p->acc_tgt_obj_id = unpack_right_shift_u8(src_p[39], 0u, 0xffu);
    dst_p->acc_tgt_obj_obstcl = unpack_right_shift_u8(src_p[40], 3u, 0xf8u);
    dst_p->acc_tgt_obj_dy = unpack_left_shift_u16(src_p[40], 8u, 0x07u);
    dst_p->acc_tgt_obj_dy |= unpack_right_shift_u16(src_p[41], 0u, 0xffu);
    dst_p->acc_tgt_obj_exist = unpack_right_shift_u8(src_p[42], 2u, 0xfcu);
    dst_p->acc_tgt_obj_vy = unpack_left_shift_u16(src_p[42], 8u, 0x03u);
    dst_p->acc_tgt_obj_vy |= unpack_right_shift_u16(src_p[43], 0u, 0xffu);
    dst_p->acc_tgt_obj_vx = unpack_left_shift_u16(src_p[44], 4u, 0xffu);
    dst_p->acc_tgt_obj_vx |= unpack_right_shift_u16(src_p[45], 4u, 0xf0u);
    dst_p->acc_tgt_obj_ax = unpack_left_shift_u16(src_p[45], 6u, 0x0fu);
    dst_p->acc_tgt_obj_ax |= unpack_right_shift_u16(src_p[46], 2u, 0xfcu);
    dst_p->acc_tgt_obj_ay = unpack_left_shift_u16(src_p[46], 8u, 0x03u);
    dst_p->acc_tgt_obj_ay |= unpack_right_shift_u16(src_p[47], 0u, 0xffu);
    dst_p->acc_tgt_obj_state = unpack_right_shift_u8(src_p[48], 5u, 0xe0u);
    dst_p->acc_tgt_obj_video_cfmd = unpack_right_shift_u8(src_p[48], 4u, 0x10u);
    dst_p->acc_tgt_obj_cnt_alive = unpack_left_shift_u16(src_p[48], 8u, 0x0fu);
    dst_p->acc_tgt_obj_cnt_alive |= unpack_right_shift_u16(src_p[49], 0u, 0xffu);
    dst_p->radar_hor_misalign = unpack_left_shift_u16(src_p[50], 4u, 0xffu);
    dst_p->radar_hor_misalign |= unpack_right_shift_u16(src_p[51], 4u, 0xf0u);
    dst_p->handsoff_detd = unpack_right_shift_u8(src_p[51], 2u, 0x0cu);
    dst_p->drvg_on_hi_way = unpack_right_shift_u8(src_p[51], 0u, 0x03u);
    dst_p->road_crvt = unpack_left_shift_u16(src_p[52], 2u, 0xffu);
    dst_p->road_crvt |= unpack_right_shift_u16(src_p[53], 6u, 0xc0u);
    dst_p->spd_limit_dst = unpack_right_shift_u8(src_p[53], 0u, 0x3fu);
    dst_p->road_crvt_far = unpack_left_shift_u16(src_p[54], 2u, 0xffu);
    dst_p->road_crvt_far |= unpack_right_shift_u16(src_p[55], 6u, 0xc0u);
    dst_p->ramp_dst = unpack_right_shift_u8(src_p[55], 0u, 0x3fu);
    dst_p->spd_limit = unpack_right_shift_u8(src_p[56], 0u, 0xffu);
    dst_p->curve_dst = unpack_right_shift_u8(src_p[57], 2u, 0xfcu);
    dst_p->nav_spd_lim_unit = unpack_right_shift_u8(src_p[57], 0u, 0x03u);
    dst_p->tunnel_dst = unpack_right_shift_u8(src_p[58], 2u, 0xfcu);
    dst_p->drvg_on_ri_lane = unpack_right_shift_u8(src_p[58], 0u, 0x03u);
    dst_p->brdg_dst = unpack_right_shift_u8(src_p[59], 2u, 0xfcu);
    dst_p->radar_drvr_attentive = unpack_right_shift_u8(src_p[59], 1u, 0x02u);
    dst_p->acc_data_rec_req = unpack_right_shift_u8(src_p[60], 5u, 0xe0u);
    dst_p->acc_sos_req = unpack_right_shift_u8(src_p[60], 3u, 0x18u);
    dst_p->ped_obj_state = unpack_right_shift_u8(src_p[60], 0u, 0x07u);
    dst_p->map_data_valid = unpack_right_shift_u8(src_p[61], 7u, 0x80u);
    dst_p->drvr_sts = unpack_right_shift_u8(src_p[61], 4u, 0x70u);
    dst_p->aeb_obj_overlap = unpack_left_shift_u8(src_p[61], 1u, 0x0fu);
    dst_p->aeb_obj_overlap |= unpack_right_shift_u8(src_p[62], 7u, 0x80u);
    dst_p->aeb_obj_drvby = unpack_right_shift_u8(src_p[62], 2u, 0x7cu);

    return (0);
}

int b30_001_acc_fd4_init(struct b30_001_acc_fd4_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_acc_fd4_t));
    msg_p->aeb_obj_id = 255.0;
    msg_p->aeb_obj_exist = 0.0;
    msg_p->aeb_obj_video_cfmd = 0.0;
    msg_p->aeb_obj_vx = 0.0;
    msg_p->aeb_obj_dx = 0.0;
    msg_p->aeb_obj_cnt_alive = 0.0;
    msg_p->aeb_obj_dy = 0.0;
    msg_p->aeb_obj_state = 0.0;
    msg_p->aeb_obj_obstcl = 0.0;
    msg_p->aeb_obj_vy = 0.0;
    msg_p->cyclist_obj_exist = 0.0;
    msg_p->aeb_obj_ax = 0.0;
    msg_p->aeb_obj_ay = 0.0;
    msg_p->cyclist_obj_dx = 0.0;
    msg_p->cyclist_obj_id = 255.0;
    msg_p->cyclist_obj_obstcl = 0.0;
    msg_p->cyclist_obj_dy = 0.0;
    msg_p->cyclist_obj_vx = 0.0;
    msg_p->cyclist_obj_cnt_alive = 0.0;
    msg_p->cyclist_obj_vy = 0.0;
    msg_p->cyclist_obj_state = 0.0;
    msg_p->cyclist_obj_video_cfmd = 0.0;
    msg_p->cyclist_obj_ax = 0.0;
    msg_p->cyclist_obj_ay = 0.0;
    msg_p->ped_obj_exist = 0.0;
    msg_p->ped_obj_id = 255.0;
    msg_p->ped_obj_obstcl = 0.0;
    msg_p->ped_obj_dy = 0.0;
    msg_p->ped_obj_dx = 0.0;
    msg_p->ped_obj_vx = 0.0;
    msg_p->ped_obj_vy = 0.0;
    msg_p->ped_obj_video_cfmd = 0.0;
    msg_p->acc_tgt_obj_dx = 0.0;
    msg_p->ped_obj_ay = 0.0;
    msg_p->ped_obj_cnt_alive = 0.0;
    msg_p->ped_obj_ax = 0.0;
    msg_p->acc_tgt_obj_id = 255.0;
    msg_p->acc_tgt_obj_obstcl = 0.0;
    msg_p->acc_tgt_obj_dy = 0.0;
    msg_p->acc_tgt_obj_exist = 0.0;
    msg_p->acc_tgt_obj_vy = 0.0;
    msg_p->acc_tgt_obj_vx = 0.0;
    msg_p->acc_tgt_obj_ax = 0.0;
    msg_p->acc_tgt_obj_ay = 0.0;
    msg_p->acc_tgt_obj_state = 0.0;
    msg_p->acc_tgt_obj_video_cfmd = 0.0;
    msg_p->acc_tgt_obj_cnt_alive = 0.0;
    msg_p->radar_hor_misalign = 0.0;
    msg_p->handsoff_detd = 0.0;
    msg_p->drvg_on_hi_way = 0.0;
    msg_p->road_crvt = 511.0;
    msg_p->spd_limit_dst = 63.0;
    msg_p->road_crvt_far = 511.0;
    msg_p->ramp_dst = 63.0;
    msg_p->spd_limit = 254.0;
    msg_p->curve_dst = 63.0;
    msg_p->nav_spd_lim_unit = 0.0;
    msg_p->tunnel_dst = 63.0;
    msg_p->drvg_on_ri_lane = 0.0;
    msg_p->brdg_dst = 63.0;
    msg_p->radar_drvr_attentive = 0.0;
    msg_p->acc_data_rec_req = 0.0;
    msg_p->acc_sos_req = 0.0;
    msg_p->ped_obj_state = 0.0;
    msg_p->map_data_valid = 0.0;
    msg_p->drvr_sts = 0.0;
    msg_p->aeb_obj_overlap = 0.0;
    msg_p->aeb_obj_drvby = 0.0;

    return 0;
}

uint8_t b30_001_acc_fd4_aeb_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_aeb_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_aeb_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd4_aeb_obj_exist_encode(double value)
{
    return (uint8_t)(value / 0.015625);
}

double b30_001_acc_fd4_aeb_obj_exist_decode(uint8_t value)
{
    return ((double)value * 0.015625);
}

bool b30_001_acc_fd4_aeb_obj_exist_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_acc_fd4_aeb_obj_video_cfmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_aeb_obj_video_cfmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_aeb_obj_video_cfmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd4_aeb_obj_vx_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0625);
}

double b30_001_acc_fd4_aeb_obj_vx_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -128.0);
}

bool b30_001_acc_fd4_aeb_obj_vx_is_in_range(uint16_t value)
{
    return (value <= 4080u);
}

uint16_t b30_001_acc_fd4_aeb_obj_dx_encode(double value)
{
    return (uint16_t)(value / 0.0625);
}

double b30_001_acc_fd4_aeb_obj_dx_decode(uint16_t value)
{
    return ((double)value * 0.0625);
}

bool b30_001_acc_fd4_aeb_obj_dx_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t b30_001_acc_fd4_aeb_obj_cnt_alive_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_acc_fd4_aeb_obj_cnt_alive_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_aeb_obj_cnt_alive_is_in_range(uint16_t value)
{
    return (value <= 3855u);
}

uint16_t b30_001_acc_fd4_aeb_obj_dy_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.125);
}

double b30_001_acc_fd4_aeb_obj_dy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -128.0);
}

bool b30_001_acc_fd4_aeb_obj_dy_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint8_t b30_001_acc_fd4_aeb_obj_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_aeb_obj_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_aeb_obj_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd4_aeb_obj_obstcl_encode(double value)
{
    return (uint8_t)(value / 0.03125);
}

double b30_001_acc_fd4_aeb_obj_obstcl_decode(uint8_t value)
{
    return ((double)value * 0.03125);
}

bool b30_001_acc_fd4_aeb_obj_obstcl_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_acc_fd4_aeb_obj_vy_encode(double value)
{
    return (uint16_t)((value - -64.0) / 0.125);
}

double b30_001_acc_fd4_aeb_obj_vy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -64.0);
}

bool b30_001_acc_fd4_aeb_obj_vy_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd4_cyclist_obj_exist_encode(double value)
{
    return (uint8_t)(value / 0.015625);
}

double b30_001_acc_fd4_cyclist_obj_exist_decode(uint8_t value)
{
    return ((double)value * 0.015625);
}

bool b30_001_acc_fd4_cyclist_obj_exist_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_acc_fd4_aeb_obj_ax_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_aeb_obj_ax_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_aeb_obj_ax_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd4_aeb_obj_ay_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_aeb_obj_ay_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_aeb_obj_ay_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_dx_encode(double value)
{
    return (uint16_t)(value / 0.0625);
}

double b30_001_acc_fd4_cyclist_obj_dx_decode(uint16_t value)
{
    return ((double)value * 0.0625);
}

bool b30_001_acc_fd4_cyclist_obj_dx_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint8_t b30_001_acc_fd4_cyclist_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_cyclist_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_cyclist_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd4_cyclist_obj_obstcl_encode(double value)
{
    return (uint8_t)(value / 0.03125);
}

double b30_001_acc_fd4_cyclist_obj_obstcl_decode(uint8_t value)
{
    return ((double)value * 0.03125);
}

bool b30_001_acc_fd4_cyclist_obj_obstcl_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_dy_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.125);
}

double b30_001_acc_fd4_cyclist_obj_dy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -128.0);
}

bool b30_001_acc_fd4_cyclist_obj_dy_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_vx_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0625);
}

double b30_001_acc_fd4_cyclist_obj_vx_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -128.0);
}

bool b30_001_acc_fd4_cyclist_obj_vx_is_in_range(uint16_t value)
{
    return (value <= 4080u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_cnt_alive_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_acc_fd4_cyclist_obj_cnt_alive_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_cyclist_obj_cnt_alive_is_in_range(uint16_t value)
{
    return (value <= 3855u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_vy_encode(double value)
{
    return (uint16_t)((value - -64.0) / 0.125);
}

double b30_001_acc_fd4_cyclist_obj_vy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -64.0);
}

bool b30_001_acc_fd4_cyclist_obj_vy_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd4_cyclist_obj_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_cyclist_obj_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_cyclist_obj_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd4_cyclist_obj_video_cfmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_cyclist_obj_video_cfmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_cyclist_obj_video_cfmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_ax_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_cyclist_obj_ax_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_cyclist_obj_ax_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd4_cyclist_obj_ay_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_cyclist_obj_ay_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_cyclist_obj_ay_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd4_ped_obj_exist_encode(double value)
{
    return (uint8_t)(value / 0.015625);
}

double b30_001_acc_fd4_ped_obj_exist_decode(uint8_t value)
{
    return ((double)value * 0.015625);
}

bool b30_001_acc_fd4_ped_obj_exist_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_acc_fd4_ped_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_ped_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_ped_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd4_ped_obj_obstcl_encode(double value)
{
    return (uint8_t)(value / 0.03125);
}

double b30_001_acc_fd4_ped_obj_obstcl_decode(uint8_t value)
{
    return ((double)value * 0.03125);
}

bool b30_001_acc_fd4_ped_obj_obstcl_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_acc_fd4_ped_obj_dy_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.125);
}

double b30_001_acc_fd4_ped_obj_dy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -128.0);
}

bool b30_001_acc_fd4_ped_obj_dy_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint16_t b30_001_acc_fd4_ped_obj_dx_encode(double value)
{
    return (uint16_t)(value / 0.0625);
}

double b30_001_acc_fd4_ped_obj_dx_decode(uint16_t value)
{
    return ((double)value * 0.0625);
}

bool b30_001_acc_fd4_ped_obj_dx_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t b30_001_acc_fd4_ped_obj_vx_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0625);
}

double b30_001_acc_fd4_ped_obj_vx_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -128.0);
}

bool b30_001_acc_fd4_ped_obj_vx_is_in_range(uint16_t value)
{
    return (value <= 4080u);
}

uint16_t b30_001_acc_fd4_ped_obj_vy_encode(double value)
{
    return (uint16_t)((value - -64.0) / 0.125);
}

double b30_001_acc_fd4_ped_obj_vy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -64.0);
}

bool b30_001_acc_fd4_ped_obj_vy_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd4_ped_obj_video_cfmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_ped_obj_video_cfmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_ped_obj_video_cfmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_dx_encode(double value)
{
    return (uint16_t)(value / 0.0625);
}

double b30_001_acc_fd4_acc_tgt_obj_dx_decode(uint16_t value)
{
    return ((double)value * 0.0625);
}

bool b30_001_acc_fd4_acc_tgt_obj_dx_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t b30_001_acc_fd4_ped_obj_ay_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_ped_obj_ay_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_ped_obj_ay_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd4_ped_obj_cnt_alive_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_acc_fd4_ped_obj_cnt_alive_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_ped_obj_cnt_alive_is_in_range(uint16_t value)
{
    return (value <= 3855u);
}

uint16_t b30_001_acc_fd4_ped_obj_ax_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_ped_obj_ax_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_ped_obj_ax_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd4_acc_tgt_obj_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_acc_tgt_obj_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_acc_tgt_obj_id_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd4_acc_tgt_obj_obstcl_encode(double value)
{
    return (uint8_t)(value / 0.03125);
}

double b30_001_acc_fd4_acc_tgt_obj_obstcl_decode(uint8_t value)
{
    return ((double)value * 0.03125);
}

bool b30_001_acc_fd4_acc_tgt_obj_obstcl_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_dy_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.125);
}

double b30_001_acc_fd4_acc_tgt_obj_dy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -128.0);
}

bool b30_001_acc_fd4_acc_tgt_obj_dy_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint8_t b30_001_acc_fd4_acc_tgt_obj_exist_encode(double value)
{
    return (uint8_t)(value / 0.015625);
}

double b30_001_acc_fd4_acc_tgt_obj_exist_decode(uint8_t value)
{
    return ((double)value * 0.015625);
}

bool b30_001_acc_fd4_acc_tgt_obj_exist_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_vy_encode(double value)
{
    return (uint16_t)((value - -64.0) / 0.125);
}

double b30_001_acc_fd4_acc_tgt_obj_vy_decode(uint16_t value)
{
    return (((double)value * 0.125) + -64.0);
}

bool b30_001_acc_fd4_acc_tgt_obj_vy_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_vx_encode(double value)
{
    return (uint16_t)((value - -128.0) / 0.0625);
}

double b30_001_acc_fd4_acc_tgt_obj_vx_decode(uint16_t value)
{
    return (((double)value * 0.0625) + -128.0);
}

bool b30_001_acc_fd4_acc_tgt_obj_vx_is_in_range(uint16_t value)
{
    return (value <= 4080u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_ax_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_acc_tgt_obj_ax_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_acc_tgt_obj_ax_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_ay_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_acc_fd4_acc_tgt_obj_ay_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_acc_fd4_acc_tgt_obj_ay_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_acc_fd4_acc_tgt_obj_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_acc_tgt_obj_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_acc_tgt_obj_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd4_acc_tgt_obj_video_cfmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_acc_tgt_obj_video_cfmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_acc_tgt_obj_video_cfmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_acc_fd4_acc_tgt_obj_cnt_alive_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_acc_fd4_acc_tgt_obj_cnt_alive_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_acc_tgt_obj_cnt_alive_is_in_range(uint16_t value)
{
    return (value <= 3855u);
}

uint16_t b30_001_acc_fd4_radar_hor_misalign_encode(double value)
{
    return (uint16_t)((value - -0.2048) / 0.0001);
}

double b30_001_acc_fd4_radar_hor_misalign_decode(uint16_t value)
{
    return (((double)value * 0.0001) + -0.2048);
}

bool b30_001_acc_fd4_radar_hor_misalign_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint8_t b30_001_acc_fd4_handsoff_detd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_handsoff_detd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_handsoff_detd_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd4_drvg_on_hi_way_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_drvg_on_hi_way_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_drvg_on_hi_way_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_acc_fd4_road_crvt_encode(double value)
{
    return (uint16_t)((value - -0.16352) / 0.00032);
}

double b30_001_acc_fd4_road_crvt_decode(uint16_t value)
{
    return (((double)value * 0.00032) + -0.16352);
}

bool b30_001_acc_fd4_road_crvt_is_in_range(uint16_t value)
{
    return (value <= 1022u);
}

uint8_t b30_001_acc_fd4_spd_limit_dst_encode(double value)
{
    return (uint8_t)(value / 10.0);
}

double b30_001_acc_fd4_spd_limit_dst_decode(uint8_t value)
{
    return ((double)value * 10.0);
}

bool b30_001_acc_fd4_spd_limit_dst_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint16_t b30_001_acc_fd4_road_crvt_far_encode(double value)
{
    return (uint16_t)((value - -0.16352) / 0.00032);
}

double b30_001_acc_fd4_road_crvt_far_decode(uint16_t value)
{
    return (((double)value * 0.00032) + -0.16352);
}

bool b30_001_acc_fd4_road_crvt_far_is_in_range(uint16_t value)
{
    return (value <= 1022u);
}

uint8_t b30_001_acc_fd4_ramp_dst_encode(double value)
{
    return (uint8_t)(value / 10.0);
}

double b30_001_acc_fd4_ramp_dst_decode(uint8_t value)
{
    return ((double)value * 10.0);
}

bool b30_001_acc_fd4_ramp_dst_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd4_spd_limit_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_spd_limit_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_spd_limit_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_acc_fd4_curve_dst_encode(double value)
{
    return (uint8_t)(value / 10.0);
}

double b30_001_acc_fd4_curve_dst_decode(uint8_t value)
{
    return ((double)value * 10.0);
}

bool b30_001_acc_fd4_curve_dst_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd4_nav_spd_lim_unit_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_nav_spd_lim_unit_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_nav_spd_lim_unit_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd4_tunnel_dst_encode(double value)
{
    return (uint8_t)(value / 10.0);
}

double b30_001_acc_fd4_tunnel_dst_decode(uint8_t value)
{
    return ((double)value * 10.0);
}

bool b30_001_acc_fd4_tunnel_dst_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd4_drvg_on_ri_lane_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_drvg_on_ri_lane_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_drvg_on_ri_lane_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd4_brdg_dst_encode(double value)
{
    return (uint8_t)(value / 10.0);
}

double b30_001_acc_fd4_brdg_dst_decode(uint8_t value)
{
    return ((double)value * 10.0);
}

bool b30_001_acc_fd4_brdg_dst_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_acc_fd4_radar_drvr_attentive_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_radar_drvr_attentive_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_radar_drvr_attentive_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd4_acc_data_rec_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_acc_data_rec_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_acc_data_rec_req_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd4_acc_sos_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_acc_sos_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_acc_sos_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_acc_fd4_ped_obj_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_ped_obj_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_ped_obj_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd4_map_data_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_map_data_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_map_data_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_acc_fd4_drvr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_drvr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_drvr_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_acc_fd4_aeb_obj_overlap_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_aeb_obj_overlap_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_aeb_obj_overlap_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_acc_fd4_aeb_obj_drvby_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_acc_fd4_aeb_obj_drvby_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_acc_fd4_aeb_obj_drvby_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

int b30_001_aeb_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_aeb_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_aeb1, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_aba_level, 6u, 0xc0u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_aba_req, 5u, 0x20u);
    dst_p[9] |= pack_left_shift_u8(src_p->eba_tgt_decel_req, 4u, 0x10u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_veh_hld_req, 3u, 0x08u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_tgt_decel_req, 2u, 0x04u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_awb_req, 1u, 0x02u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_abp_req, 0u, 0x01u);
    dst_p[10] |= pack_right_shift_u16(src_p->aeb_tgt_decel_req_value, 8u, 0xffu);
    dst_p[11] |= pack_left_shift_u16(src_p->aeb_tgt_decel_req_value, 0u, 0xffu);
    dst_p[12] |= pack_left_shift_u8(src_p->aeb_awb_level, 4u, 0xf0u);
    dst_p[12] |= pack_left_shift_u8(src_p->aeb_brk_req_func, 1u, 0x0eu);
    dst_p[13] |= pack_left_shift_u8(src_p->aeb_obj_sty, 5u, 0xe0u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_aeb1, 0u, 0x0fu);

    return (64);
}

int b30_001_aeb_fd1_unpack(
    struct b30_001_aeb_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_aeb1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->aeb_aba_level = unpack_right_shift_u8(src_p[9], 6u, 0xc0u);
    dst_p->aeb_aba_req = unpack_right_shift_u8(src_p[9], 5u, 0x20u);
    dst_p->eba_tgt_decel_req = unpack_right_shift_u8(src_p[9], 4u, 0x10u);
    dst_p->aeb_veh_hld_req = unpack_right_shift_u8(src_p[9], 3u, 0x08u);
    dst_p->aeb_tgt_decel_req = unpack_right_shift_u8(src_p[9], 2u, 0x04u);
    dst_p->aeb_awb_req = unpack_right_shift_u8(src_p[9], 1u, 0x02u);
    dst_p->aeb_abp_req = unpack_right_shift_u8(src_p[9], 0u, 0x01u);
    dst_p->aeb_tgt_decel_req_value = unpack_left_shift_u16(src_p[10], 8u, 0xffu);
    dst_p->aeb_tgt_decel_req_value |= unpack_right_shift_u16(src_p[11], 0u, 0xffu);
    dst_p->aeb_awb_level = unpack_right_shift_u8(src_p[12], 4u, 0xf0u);
    dst_p->aeb_brk_req_func = unpack_right_shift_u8(src_p[12], 1u, 0x0eu);
    dst_p->aeb_obj_sty = unpack_right_shift_u8(src_p[13], 5u, 0xe0u);
    dst_p->rolling_counter_aeb1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);

    return (0);
}

int b30_001_aeb_fd1_init(struct b30_001_aeb_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_aeb_fd1_t));
    msg_p->checksum_aeb1 = 0.0;
    msg_p->aeb_aba_level = 0.0;
    msg_p->aeb_aba_req = 0.0;
    msg_p->eba_tgt_decel_req = 0.0;
    msg_p->aeb_veh_hld_req = 0.0;
    msg_p->aeb_tgt_decel_req = 0.0;
    msg_p->aeb_awb_req = 0.0;
    msg_p->aeb_abp_req = 0.0;
    msg_p->aeb_tgt_decel_req_value = 0.0;
    msg_p->aeb_awb_level = 0.0;
    msg_p->aeb_brk_req_func = 0.0;
    msg_p->aeb_obj_sty = 0.0;
    msg_p->rolling_counter_aeb1 = 0.0;

    return 0;
}

uint8_t b30_001_aeb_fd1_checksum_aeb1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_checksum_aeb1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_checksum_aeb1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_aeb_fd1_aeb_aba_level_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_aba_level_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_aba_level_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd1_aeb_aba_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_aba_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_aba_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd1_eba_tgt_decel_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_eba_tgt_decel_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_eba_tgt_decel_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd1_aeb_veh_hld_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_veh_hld_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_veh_hld_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd1_aeb_tgt_decel_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_tgt_decel_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_tgt_decel_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd1_aeb_awb_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_awb_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_awb_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd1_aeb_abp_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_abp_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_abp_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_aeb_fd1_aeb_tgt_decel_req_value_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.000488);
}

double b30_001_aeb_fd1_aeb_tgt_decel_req_value_decode(uint16_t value)
{
    return (((double)value * 0.000488) + -16.0);
}

bool b30_001_aeb_fd1_aeb_tgt_decel_req_value_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_aeb_fd1_aeb_awb_level_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_awb_level_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_awb_level_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_aeb_fd1_aeb_brk_req_func_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_brk_req_func_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_brk_req_func_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_aeb_fd1_aeb_obj_sty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_aeb_obj_sty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_aeb_obj_sty_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_aeb_fd1_rolling_counter_aeb1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd1_rolling_counter_aeb1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd1_rolling_counter_aeb1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_aeb_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_aeb_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_aeb2, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_ped_resp, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_veh_resp, 6u, 0x40u);
    dst_p[9] |= pack_left_shift_u8(src_p->fcw_snvty, 4u, 0x30u);
    dst_p[9] |= pack_left_shift_u8(src_p->aeb_ja_resp, 3u, 0x08u);
    dst_p[9] |= pack_left_shift_u8(src_p->intellgntcurve_resp, 2u, 0x04u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_aeb2, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_aeb3, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->aeb_veh_trig, 7u, 0x80u);
    dst_p[17] |= pack_left_shift_u8(src_p->aeb_ped_trig, 6u, 0x40u);
    dst_p[17] |= pack_left_shift_u8(src_p->fcw_aeb_veh_fct_sts, 1u, 0x06u);
    dst_p[18] |= pack_left_shift_u8(src_p->fcw_aeb_ped_fct_sts, 6u, 0xc0u);
    dst_p[18] |= pack_left_shift_u8(src_p->fcw_warn, 4u, 0x30u);
    dst_p[18] |= pack_left_shift_u8(src_p->aeb_ja_func_sts, 2u, 0x0cu);
    dst_p[18] |= pack_left_shift_u8(src_p->aeb_ja_warn, 0u, 0x03u);
    dst_p[19] |= pack_left_shift_u8(src_p->aeb_ja_brk_trig, 6u, 0xc0u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_aeb3, 0u, 0x0fu);

    return (64);
}

int b30_001_aeb_fd2_unpack(
    struct b30_001_aeb_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_aeb2 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->aeb_ped_resp = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->aeb_veh_resp = unpack_right_shift_u8(src_p[9], 6u, 0x40u);
    dst_p->fcw_snvty = unpack_right_shift_u8(src_p[9], 4u, 0x30u);
    dst_p->aeb_ja_resp = unpack_right_shift_u8(src_p[9], 3u, 0x08u);
    dst_p->intellgntcurve_resp = unpack_right_shift_u8(src_p[9], 2u, 0x04u);
    dst_p->rolling_counter_aeb2 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_aeb3 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->aeb_veh_trig = unpack_right_shift_u8(src_p[17], 7u, 0x80u);
    dst_p->aeb_ped_trig = unpack_right_shift_u8(src_p[17], 6u, 0x40u);
    dst_p->fcw_aeb_veh_fct_sts = unpack_right_shift_u8(src_p[17], 1u, 0x06u);
    dst_p->fcw_aeb_ped_fct_sts = unpack_right_shift_u8(src_p[18], 6u, 0xc0u);
    dst_p->fcw_warn = unpack_right_shift_u8(src_p[18], 4u, 0x30u);
    dst_p->aeb_ja_func_sts = unpack_right_shift_u8(src_p[18], 2u, 0x0cu);
    dst_p->aeb_ja_warn = unpack_right_shift_u8(src_p[18], 0u, 0x03u);
    dst_p->aeb_ja_brk_trig = unpack_right_shift_u8(src_p[19], 6u, 0xc0u);
    dst_p->rolling_counter_aeb3 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);

    return (0);
}

int b30_001_aeb_fd2_init(struct b30_001_aeb_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_aeb_fd2_t));
    msg_p->checksum_aeb2 = 0.0;
    msg_p->aeb_ped_resp = 1.0;
    msg_p->aeb_veh_resp = 1.0;
    msg_p->fcw_snvty = 0.0;
    msg_p->aeb_ja_resp = 1.0;
    msg_p->intellgntcurve_resp = 0.0;
    msg_p->rolling_counter_aeb2 = 0.0;
    msg_p->checksum_aeb3 = 0.0;
    msg_p->aeb_veh_trig = 0.0;
    msg_p->aeb_ped_trig = 0.0;
    msg_p->fcw_aeb_veh_fct_sts = 0.0;
    msg_p->fcw_aeb_ped_fct_sts = 0.0;
    msg_p->fcw_warn = 0.0;
    msg_p->aeb_ja_func_sts = 0.0;
    msg_p->aeb_ja_warn = 0.0;
    msg_p->aeb_ja_brk_trig = 0.0;
    msg_p->rolling_counter_aeb3 = 0.0;

    return 0;
}

uint8_t b30_001_aeb_fd2_checksum_aeb2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_checksum_aeb2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_checksum_aeb2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_aeb_fd2_aeb_ped_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_ped_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_ped_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd2_aeb_veh_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_veh_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_veh_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd2_fcw_snvty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_fcw_snvty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_fcw_snvty_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_aeb_ja_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_ja_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_ja_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd2_intellgntcurve_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_intellgntcurve_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_intellgntcurve_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd2_rolling_counter_aeb2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_rolling_counter_aeb2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_rolling_counter_aeb2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_aeb_fd2_checksum_aeb3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_checksum_aeb3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_checksum_aeb3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_aeb_fd2_aeb_veh_trig_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_veh_trig_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_veh_trig_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd2_aeb_ped_trig_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_ped_trig_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_ped_trig_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_aeb_fd2_fcw_aeb_veh_fct_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_fcw_aeb_veh_fct_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_fcw_aeb_veh_fct_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_fcw_aeb_ped_fct_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_fcw_aeb_ped_fct_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_fcw_aeb_ped_fct_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_fcw_warn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_fcw_warn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_fcw_warn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_aeb_ja_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_ja_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_ja_func_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_aeb_ja_warn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_ja_warn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_ja_warn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_aeb_ja_brk_trig_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_aeb_ja_brk_trig_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_aeb_ja_brk_trig_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_aeb_fd2_rolling_counter_aeb3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_aeb_fd2_rolling_counter_aeb3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_aeb_fd2_rolling_counter_aeb3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_bcm1_pack(
    uint8_t *dst_p,
    const struct b30_001_bcm1_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[2] |= pack_left_shift_u8(src_p->trunk_sts, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->drv_door_sts, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->lr_door_sts, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->passenger_door_sts, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->rr_door_sts, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->windshld_wipr_actv_sts, 1u, 0x02u);

    return (16);
}

int b30_001_bcm1_unpack(
    struct b30_001_bcm1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->trunk_sts = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->drv_door_sts = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->lr_door_sts = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->passenger_door_sts = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->rr_door_sts = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->windshld_wipr_actv_sts = unpack_right_shift_u8(src_p[2], 1u, 0x02u);

    return (0);
}

int b30_001_bcm1_init(struct b30_001_bcm1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_bcm1_t));
    msg_p->trunk_sts = 0.0;
    msg_p->drv_door_sts = 0.0;
    msg_p->lr_door_sts = 0.0;
    msg_p->passenger_door_sts = 0.0;
    msg_p->rr_door_sts = 0.0;
    msg_p->windshld_wipr_actv_sts = 0.0;

    return 0;
}

uint8_t b30_001_bcm1_trunk_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm1_trunk_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm1_trunk_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm1_drv_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm1_drv_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm1_drv_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm1_lr_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm1_lr_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm1_lr_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm1_passenger_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm1_passenger_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm1_passenger_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm1_rr_door_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm1_rr_door_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm1_rr_door_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm1_windshld_wipr_actv_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm1_windshld_wipr_actv_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm1_windshld_wipr_actv_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_bcm3_pack(
    uint8_t *dst_p,
    const struct b30_001_bcm3_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[1] |= pack_left_shift_u8(src_p->hazard_lmp_swt_sts, 0u, 0x01u);

    return (16);
}

int b30_001_bcm3_unpack(
    struct b30_001_bcm3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->hazard_lmp_swt_sts = unpack_right_shift_u8(src_p[1], 0u, 0x01u);

    return (0);
}

int b30_001_bcm3_init(struct b30_001_bcm3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_bcm3_t));
    msg_p->hazard_lmp_swt_sts = 0.0;

    return 0;
}

uint8_t b30_001_bcm3_hazard_lmp_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm3_hazard_lmp_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm3_hazard_lmp_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_bcm8_pack(
    uint8_t *dst_p,
    const struct b30_001_bcm8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_bcm8, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->pas_work_cmd, 0u, 0x01u);
    dst_p[5] |= pack_left_shift_u8(src_p->r_view_mirror_sts, 4u, 0x10u);
    dst_p[6] |= pack_left_shift_u8(src_p->wipr_req_f_pbox, 1u, 0x0eu);
    dst_p[7] |= pack_left_shift_u8(src_p->kl30_b_relay_sts, 5u, 0x20u);
    dst_p[7] |= pack_left_shift_u8(src_p->rollingcounter_bcm8, 0u, 0x0fu);

    return (8);
}

int b30_001_bcm8_unpack(
    struct b30_001_bcm8_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_bcm8 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->pas_work_cmd = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->r_view_mirror_sts = unpack_right_shift_u8(src_p[5], 4u, 0x10u);
    dst_p->wipr_req_f_pbox = unpack_right_shift_u8(src_p[6], 1u, 0x0eu);
    dst_p->kl30_b_relay_sts = unpack_right_shift_u8(src_p[7], 5u, 0x20u);
    dst_p->rollingcounter_bcm8 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_bcm8_init(struct b30_001_bcm8_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_bcm8_t));
    msg_p->checksum_bcm8 = 0.0;
    msg_p->pas_work_cmd = 0.0;
    msg_p->r_view_mirror_sts = 0.0;
    msg_p->wipr_req_f_pbox = 0.0;
    msg_p->kl30_b_relay_sts = 0.0;
    msg_p->rollingcounter_bcm8 = 0.0;

    return 0;
}

uint8_t b30_001_bcm8_checksum_bcm8_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm8_checksum_bcm8_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm8_checksum_bcm8_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_bcm8_pas_work_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm8_pas_work_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm8_pas_work_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm8_r_view_mirror_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm8_r_view_mirror_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm8_r_view_mirror_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm8_wipr_req_f_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm8_wipr_req_f_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm8_wipr_req_f_pbox_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_bcm8_kl30_b_relay_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm8_kl30_b_relay_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm8_kl30_b_relay_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_bcm8_rollingcounter_bcm8_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_bcm8_rollingcounter_bcm8_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_bcm8_rollingcounter_bcm8_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ble1_pack(
    uint8_t *dst_p,
    const struct b30_001_ble1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_ble1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->ble_conn_sts, 6u, 0xc0u);
    dst_p[1] |= pack_left_shift_u8(src_p->ble_security_sts, 4u, 0x30u);
    dst_p[2] |= pack_left_shift_u8(src_p->prkgslid_req_rmt, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->prk_out_veh_strt_req_rmt, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->park_abort_req_rmt, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->prk_out_mod_sel_rmt, 0u, 0x07u);
    dst_p[3] |= pack_left_shift_u8(src_p->prkg_sync_strt_req_rmt, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->prk_out_veh_strt_req_rmt_valid, 6u, 0x40u);
    dst_p[3] |= pack_left_shift_u8(src_p->prk_out_type_req_rmt, 4u, 0x30u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_ble1, 0u, 0x0fu);

    return (8);
}

int b30_001_ble1_unpack(
    struct b30_001_ble1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_ble1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->ble_conn_sts = unpack_right_shift_u8(src_p[1], 6u, 0xc0u);
    dst_p->ble_security_sts = unpack_right_shift_u8(src_p[1], 4u, 0x30u);
    dst_p->prkgslid_req_rmt = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->prk_out_veh_strt_req_rmt = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->park_abort_req_rmt = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->prk_out_mod_sel_rmt = unpack_right_shift_u8(src_p[2], 0u, 0x07u);
    dst_p->prkg_sync_strt_req_rmt = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->prk_out_veh_strt_req_rmt_valid = unpack_right_shift_u8(src_p[3], 6u, 0x40u);
    dst_p->prk_out_type_req_rmt = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->rolling_counter_ble1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_ble1_init(struct b30_001_ble1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ble1_t));
    msg_p->checksum_ble1 = 0.0;
    msg_p->ble_conn_sts = 0.0;
    msg_p->ble_security_sts = 0.0;
    msg_p->prkgslid_req_rmt = 0.0;
    msg_p->prk_out_veh_strt_req_rmt = 0.0;
    msg_p->park_abort_req_rmt = 0.0;
    msg_p->prk_out_mod_sel_rmt = 0.0;
    msg_p->prkg_sync_strt_req_rmt = 0.0;
    msg_p->prk_out_veh_strt_req_rmt_valid = 0.0;
    msg_p->prk_out_type_req_rmt = 0.0;
    msg_p->rolling_counter_ble1 = 0.0;

    return 0;
}

uint8_t b30_001_ble1_checksum_ble1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_checksum_ble1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_checksum_ble1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ble1_ble_conn_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_ble_conn_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_ble_conn_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ble1_ble_security_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_ble_security_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_ble_security_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ble1_prkgslid_req_rmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_prkgslid_req_rmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_prkgslid_req_rmt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ble1_prk_out_veh_strt_req_rmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_prk_out_veh_strt_req_rmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_prk_out_veh_strt_req_rmt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ble1_park_abort_req_rmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_park_abort_req_rmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_park_abort_req_rmt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ble1_prk_out_mod_sel_rmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_prk_out_mod_sel_rmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_prk_out_mod_sel_rmt_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ble1_prkg_sync_strt_req_rmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_prkg_sync_strt_req_rmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_prkg_sync_strt_req_rmt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ble1_prk_out_veh_strt_req_rmt_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_prk_out_veh_strt_req_rmt_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_prk_out_veh_strt_req_rmt_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ble1_prk_out_type_req_rmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_prk_out_type_req_rmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_prk_out_type_req_rmt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ble1_rolling_counter_ble1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ble1_rolling_counter_ble1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ble1_rolling_counter_ble1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_cr_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_cr_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_cr_r_1, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->cr_fcta_resp, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->cr_fctb_resp, 6u, 0x40u);
    dst_p[9] |= pack_left_shift_u8(src_p->fcta_b_func_sts, 4u, 0x30u);
    dst_p[9] |= pack_left_shift_u8(src_p->fcta_warn, 3u, 0x08u);
    dst_p[10] |= pack_left_shift_u8(src_p->cr_err_sts, 7u, 0x80u);
    dst_p[10] |= pack_left_shift_u8(src_p->cr_bli_sts, 6u, 0x40u);
    dst_p[10] |= pack_left_shift_u8(src_p->cr_brkg_req, 5u, 0x20u);
    dst_p[10] |= pack_left_shift_u8(src_p->fctb_trig, 3u, 0x08u);
    dst_p[10] |= pack_left_shift_u8(src_p->fctb_aba_level, 1u, 0x06u);
    dst_p[10] |= pack_left_shift_u8(src_p->fctb_aba_req, 0u, 0x01u);
    dst_p[11] |= pack_right_shift_u16(src_p->cr_brkg_req_val, 8u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->cr_brkg_req_val, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->fctb_abp_req, 7u, 0x80u);
    dst_p[13] |= pack_left_shift_u8(src_p->fcta_b_ttc, 1u, 0x7eu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_cr_r_1, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_cr_r_2, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->cr_obj_dist_y_le, 0u, 0xffu);
    dst_p[18] |= pack_right_shift_u16(src_p->cr_obj_dist_x_le, 2u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->cr_obj_dist_x_le, 6u, 0xc0u);
    dst_p[19] |= pack_left_shift_u8(src_p->cr_obj_id_le, 0u, 0x3fu);
    dst_p[20] |= pack_right_shift_u16(src_p->cr_obj_rel_vel_x_le, 2u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->cr_obj_rel_vel_x_le, 6u, 0xc0u);
    dst_p[21] |= pack_right_shift_u16(src_p->cr_obj_rel_accel_x_le, 4u, 0x3fu);
    dst_p[22] |= pack_left_shift_u16(src_p->cr_obj_rel_accel_x_le, 4u, 0xf0u);
    dst_p[22] |= pack_left_shift_u8(src_p->cr_obj_sts_le, 2u, 0x0cu);
    dst_p[23] |= pack_left_shift_u8(src_p->cr_obj_motion_type_le, 5u, 0xe0u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_cr_r_2, 0u, 0x0fu);
    dst_p[24] |= pack_left_shift_u8(src_p->checksum_cr_r_3, 0u, 0xffu);
    dst_p[25] |= pack_left_shift_u8(src_p->cr_obj_dist_y_ri, 0u, 0xffu);
    dst_p[26] |= pack_right_shift_u16(src_p->cr_obj_dist_x_ri, 2u, 0xffu);
    dst_p[27] |= pack_left_shift_u16(src_p->cr_obj_dist_x_ri, 6u, 0xc0u);
    dst_p[27] |= pack_left_shift_u8(src_p->cr_obj_id_ri, 0u, 0x3fu);
    dst_p[28] |= pack_right_shift_u16(src_p->cr_obj_rel_vel_x_ri, 2u, 0xffu);
    dst_p[29] |= pack_left_shift_u16(src_p->cr_obj_rel_vel_x_ri, 6u, 0xc0u);
    dst_p[29] |= pack_right_shift_u16(src_p->cr_obj_rel_accel_x_ri, 4u, 0x3fu);
    dst_p[30] |= pack_left_shift_u16(src_p->cr_obj_rel_accel_x_ri, 4u, 0xf0u);
    dst_p[30] |= pack_left_shift_u8(src_p->cr_obj_sts_ri, 2u, 0x0cu);
    dst_p[31] |= pack_left_shift_u8(src_p->cr_obj_motion_type_ri, 5u, 0xe0u);
    dst_p[31] |= pack_left_shift_u8(src_p->rolling_counter_cr_r_3, 0u, 0x0fu);
    dst_p[32] |= pack_left_shift_u8(src_p->checksum_cr_r_4, 0u, 0xffu);
    dst_p[33] |= pack_right_shift_u16(src_p->cr_obj_rel_accel_y_ri, 2u, 0xffu);
    dst_p[34] |= pack_left_shift_u16(src_p->cr_obj_rel_accel_y_ri, 6u, 0xc0u);
    dst_p[34] |= pack_right_shift_u16(src_p->cr_obj_rel_accel_y_le, 4u, 0x3fu);
    dst_p[35] |= pack_left_shift_u16(src_p->cr_obj_rel_accel_y_le, 4u, 0xf0u);
    dst_p[36] |= pack_left_shift_u8(src_p->cr_obj_rel_vel_y_ri, 1u, 0xfeu);
    dst_p[37] |= pack_left_shift_u8(src_p->cr_obj_rel_vel_y_le, 1u, 0xfeu);
    dst_p[39] |= pack_left_shift_u8(src_p->rolling_counter_cr_r_4, 0u, 0x0fu);
    dst_p[41] |= pack_left_shift_u8(src_p->cr_obj_dist_x_std_le, 3u, 0xf8u);
    dst_p[41] |= pack_right_shift_u8(src_p->cr_obj_dist_y_std_le, 2u, 0x07u);
    dst_p[42] |= pack_left_shift_u8(src_p->cr_obj_dist_y_std_le, 6u, 0xc0u);
    dst_p[42] |= pack_left_shift_u8(src_p->cr_obj_rel_vel_x_std_le, 1u, 0x3eu);
    dst_p[42] |= pack_right_shift_u8(src_p->cr_obj_rel_vel_y_std_le, 4u, 0x01u);
    dst_p[43] |= pack_left_shift_u8(src_p->cr_obj_rel_vel_y_std_le, 4u, 0xf0u);
    dst_p[43] |= pack_right_shift_u8(src_p->cr_obj_r_accel_x_std_le, 1u, 0x0fu);
    dst_p[44] |= pack_left_shift_u8(src_p->cr_obj_r_accel_x_std_le, 7u, 0x80u);
    dst_p[44] |= pack_left_shift_u8(src_p->cr_obj_r_accel_y_std_le, 2u, 0x7cu);
    dst_p[44] |= pack_right_shift_u8(src_p->cr_obj_dist_x_std_ri, 3u, 0x03u);
    dst_p[45] |= pack_left_shift_u8(src_p->cr_obj_dist_x_std_ri, 5u, 0xe0u);
    dst_p[45] |= pack_left_shift_u8(src_p->cr_obj_dist_y_std_ri, 0u, 0x1fu);
    dst_p[46] |= pack_left_shift_u8(src_p->cr_obj_rel_vel_x_std_ri, 3u, 0xf8u);
    dst_p[49] |= pack_left_shift_u8(src_p->cr_obj_rel_vel_y_std_ri, 3u, 0xf8u);
    dst_p[49] |= pack_right_shift_u8(src_p->cr_obj_r_accel_x_std_ri, 2u, 0x07u);
    dst_p[50] |= pack_left_shift_u8(src_p->cr_obj_r_accel_x_std_ri, 6u, 0xc0u);
    dst_p[50] |= pack_left_shift_u8(src_p->cr_obj_r_accel_y_std_ri, 1u, 0x3eu);

    return (64);
}

int b30_001_cr_fd1_unpack(
    struct b30_001_cr_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_cr_r_1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->cr_fcta_resp = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->cr_fctb_resp = unpack_right_shift_u8(src_p[9], 6u, 0x40u);
    dst_p->fcta_b_func_sts = unpack_right_shift_u8(src_p[9], 4u, 0x30u);
    dst_p->fcta_warn = unpack_right_shift_u8(src_p[9], 3u, 0x08u);
    dst_p->cr_err_sts = unpack_right_shift_u8(src_p[10], 7u, 0x80u);
    dst_p->cr_bli_sts = unpack_right_shift_u8(src_p[10], 6u, 0x40u);
    dst_p->cr_brkg_req = unpack_right_shift_u8(src_p[10], 5u, 0x20u);
    dst_p->fctb_trig = unpack_right_shift_u8(src_p[10], 3u, 0x08u);
    dst_p->fctb_aba_level = unpack_right_shift_u8(src_p[10], 1u, 0x06u);
    dst_p->fctb_aba_req = unpack_right_shift_u8(src_p[10], 0u, 0x01u);
    dst_p->cr_brkg_req_val = unpack_left_shift_u16(src_p[11], 8u, 0xffu);
    dst_p->cr_brkg_req_val |= unpack_right_shift_u16(src_p[12], 0u, 0xffu);
    dst_p->fctb_abp_req = unpack_right_shift_u8(src_p[13], 7u, 0x80u);
    dst_p->fcta_b_ttc = unpack_right_shift_u8(src_p[13], 1u, 0x7eu);
    dst_p->rolling_counter_cr_r_1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_cr_r_2 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->cr_obj_dist_y_le = unpack_right_shift_u8(src_p[17], 0u, 0xffu);
    dst_p->cr_obj_dist_x_le = unpack_left_shift_u16(src_p[18], 2u, 0xffu);
    dst_p->cr_obj_dist_x_le |= unpack_right_shift_u16(src_p[19], 6u, 0xc0u);
    dst_p->cr_obj_id_le = unpack_right_shift_u8(src_p[19], 0u, 0x3fu);
    dst_p->cr_obj_rel_vel_x_le = unpack_left_shift_u16(src_p[20], 2u, 0xffu);
    dst_p->cr_obj_rel_vel_x_le |= unpack_right_shift_u16(src_p[21], 6u, 0xc0u);
    dst_p->cr_obj_rel_accel_x_le = unpack_left_shift_u16(src_p[21], 4u, 0x3fu);
    dst_p->cr_obj_rel_accel_x_le |= unpack_right_shift_u16(src_p[22], 4u, 0xf0u);
    dst_p->cr_obj_sts_le = unpack_right_shift_u8(src_p[22], 2u, 0x0cu);
    dst_p->cr_obj_motion_type_le = unpack_right_shift_u8(src_p[23], 5u, 0xe0u);
    dst_p->rolling_counter_cr_r_2 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->checksum_cr_r_3 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->cr_obj_dist_y_ri = unpack_right_shift_u8(src_p[25], 0u, 0xffu);
    dst_p->cr_obj_dist_x_ri = unpack_left_shift_u16(src_p[26], 2u, 0xffu);
    dst_p->cr_obj_dist_x_ri |= unpack_right_shift_u16(src_p[27], 6u, 0xc0u);
    dst_p->cr_obj_id_ri = unpack_right_shift_u8(src_p[27], 0u, 0x3fu);
    dst_p->cr_obj_rel_vel_x_ri = unpack_left_shift_u16(src_p[28], 2u, 0xffu);
    dst_p->cr_obj_rel_vel_x_ri |= unpack_right_shift_u16(src_p[29], 6u, 0xc0u);
    dst_p->cr_obj_rel_accel_x_ri = unpack_left_shift_u16(src_p[29], 4u, 0x3fu);
    dst_p->cr_obj_rel_accel_x_ri |= unpack_right_shift_u16(src_p[30], 4u, 0xf0u);
    dst_p->cr_obj_sts_ri = unpack_right_shift_u8(src_p[30], 2u, 0x0cu);
    dst_p->cr_obj_motion_type_ri = unpack_right_shift_u8(src_p[31], 5u, 0xe0u);
    dst_p->rolling_counter_cr_r_3 = unpack_right_shift_u8(src_p[31], 0u, 0x0fu);
    dst_p->checksum_cr_r_4 = unpack_right_shift_u8(src_p[32], 0u, 0xffu);
    dst_p->cr_obj_rel_accel_y_ri = unpack_left_shift_u16(src_p[33], 2u, 0xffu);
    dst_p->cr_obj_rel_accel_y_ri |= unpack_right_shift_u16(src_p[34], 6u, 0xc0u);
    dst_p->cr_obj_rel_accel_y_le = unpack_left_shift_u16(src_p[34], 4u, 0x3fu);
    dst_p->cr_obj_rel_accel_y_le |= unpack_right_shift_u16(src_p[35], 4u, 0xf0u);
    dst_p->cr_obj_rel_vel_y_ri = unpack_right_shift_u8(src_p[36], 1u, 0xfeu);
    dst_p->cr_obj_rel_vel_y_le = unpack_right_shift_u8(src_p[37], 1u, 0xfeu);
    dst_p->rolling_counter_cr_r_4 = unpack_right_shift_u8(src_p[39], 0u, 0x0fu);
    dst_p->cr_obj_dist_x_std_le = unpack_right_shift_u8(src_p[41], 3u, 0xf8u);
    dst_p->cr_obj_dist_y_std_le = unpack_left_shift_u8(src_p[41], 2u, 0x07u);
    dst_p->cr_obj_dist_y_std_le |= unpack_right_shift_u8(src_p[42], 6u, 0xc0u);
    dst_p->cr_obj_rel_vel_x_std_le = unpack_right_shift_u8(src_p[42], 1u, 0x3eu);
    dst_p->cr_obj_rel_vel_y_std_le = unpack_left_shift_u8(src_p[42], 4u, 0x01u);
    dst_p->cr_obj_rel_vel_y_std_le |= unpack_right_shift_u8(src_p[43], 4u, 0xf0u);
    dst_p->cr_obj_r_accel_x_std_le = unpack_left_shift_u8(src_p[43], 1u, 0x0fu);
    dst_p->cr_obj_r_accel_x_std_le |= unpack_right_shift_u8(src_p[44], 7u, 0x80u);
    dst_p->cr_obj_r_accel_y_std_le = unpack_right_shift_u8(src_p[44], 2u, 0x7cu);
    dst_p->cr_obj_dist_x_std_ri = unpack_left_shift_u8(src_p[44], 3u, 0x03u);
    dst_p->cr_obj_dist_x_std_ri |= unpack_right_shift_u8(src_p[45], 5u, 0xe0u);
    dst_p->cr_obj_dist_y_std_ri = unpack_right_shift_u8(src_p[45], 0u, 0x1fu);
    dst_p->cr_obj_rel_vel_x_std_ri = unpack_right_shift_u8(src_p[46], 3u, 0xf8u);
    dst_p->cr_obj_rel_vel_y_std_ri = unpack_right_shift_u8(src_p[49], 3u, 0xf8u);
    dst_p->cr_obj_r_accel_x_std_ri = unpack_left_shift_u8(src_p[49], 2u, 0x07u);
    dst_p->cr_obj_r_accel_x_std_ri |= unpack_right_shift_u8(src_p[50], 6u, 0xc0u);
    dst_p->cr_obj_r_accel_y_std_ri = unpack_right_shift_u8(src_p[50], 1u, 0x3eu);

    return (0);
}

int b30_001_cr_fd1_init(struct b30_001_cr_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_cr_fd1_t));
    msg_p->checksum_cr_r_1 = 0.0;
    msg_p->cr_fcta_resp = 0.0;
    msg_p->cr_fctb_resp = 0.0;
    msg_p->fcta_b_func_sts = 0.0;
    msg_p->fcta_warn = 0.0;
    msg_p->cr_err_sts = 0.0;
    msg_p->cr_bli_sts = 0.0;
    msg_p->cr_brkg_req = 0.0;
    msg_p->fctb_trig = 0.0;
    msg_p->fctb_aba_level = 0.0;
    msg_p->fctb_aba_req = 0.0;
    msg_p->cr_brkg_req_val = 0.0;
    msg_p->fctb_abp_req = 0.0;
    msg_p->fcta_b_ttc = 0.0;
    msg_p->rolling_counter_cr_r_1 = 0.0;
    msg_p->checksum_cr_r_2 = 0.0;
    msg_p->cr_obj_dist_x_le = 0.0;
    msg_p->cr_obj_id_le = 0.0;
    msg_p->cr_obj_rel_vel_x_le = 0.0;
    msg_p->cr_obj_sts_le = 2.0;
    msg_p->cr_obj_motion_type_le = 0.0;
    msg_p->rolling_counter_cr_r_2 = 0.0;
    msg_p->checksum_cr_r_3 = 0.0;
    msg_p->cr_obj_dist_x_ri = 0.0;
    msg_p->cr_obj_id_ri = 0.0;
    msg_p->cr_obj_rel_vel_x_ri = 0.0;
    msg_p->cr_obj_sts_ri = 2.0;
    msg_p->cr_obj_motion_type_ri = 0.0;
    msg_p->rolling_counter_cr_r_3 = 0.0;
    msg_p->checksum_cr_r_4 = 0.0;
    msg_p->rolling_counter_cr_r_4 = 0.0;
    msg_p->cr_obj_dist_x_std_le = 0.0;
    msg_p->cr_obj_dist_y_std_le = 0.0;
    msg_p->cr_obj_rel_vel_x_std_le = 0.0;
    msg_p->cr_obj_rel_vel_y_std_le = 0.0;
    msg_p->cr_obj_r_accel_x_std_le = 0.0;
    msg_p->cr_obj_r_accel_y_std_le = 0.0;
    msg_p->cr_obj_dist_x_std_ri = 0.0;
    msg_p->cr_obj_dist_y_std_ri = 0.0;
    msg_p->cr_obj_rel_vel_x_std_ri = 0.0;
    msg_p->cr_obj_rel_vel_y_std_ri = 0.0;
    msg_p->cr_obj_r_accel_x_std_ri = 0.0;
    msg_p->cr_obj_r_accel_y_std_ri = 0.0;

    return 0;
}

uint8_t b30_001_cr_fd1_checksum_cr_r_1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_checksum_cr_r_1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_checksum_cr_r_1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_cr_fd1_cr_fcta_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_fcta_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_fcta_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_cr_fctb_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_fctb_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_fctb_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_fcta_b_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_fcta_b_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_fcta_b_func_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_cr_fd1_fcta_warn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_fcta_warn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_fcta_warn_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_cr_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_err_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_cr_bli_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_bli_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_bli_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_cr_brkg_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_brkg_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_brkg_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_fctb_trig_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_fctb_trig_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_fctb_trig_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_fctb_aba_level_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_fctb_aba_level_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_fctb_aba_level_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_cr_fd1_fctb_aba_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_fctb_aba_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_fctb_aba_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_cr_fd1_cr_brkg_req_val_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.000488);
}

double b30_001_cr_fd1_cr_brkg_req_val_decode(uint16_t value)
{
    return (((double)value * 0.000488) + -16.0);
}

bool b30_001_cr_fd1_cr_brkg_req_val_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_cr_fd1_fctb_abp_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_fctb_abp_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_fctb_abp_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_cr_fd1_fcta_b_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_cr_fd1_fcta_b_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_cr_fd1_fcta_b_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_cr_fd1_rolling_counter_cr_r_1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_rolling_counter_cr_r_1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_rolling_counter_cr_r_1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_cr_fd1_checksum_cr_r_2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_checksum_cr_r_2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_checksum_cr_r_2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_cr_fd1_cr_obj_dist_y_le_encode(double value)
{
    return (uint8_t)((value - -12.8) / 0.1);
}

double b30_001_cr_fd1_cr_obj_dist_y_le_decode(uint8_t value)
{
    return (((double)value * 0.1) + -12.8);
}

bool b30_001_cr_fd1_cr_obj_dist_y_le_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_cr_fd1_cr_obj_dist_x_le_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.1);
}

double b30_001_cr_fd1_cr_obj_dist_x_le_decode(uint16_t value)
{
    return (((double)value * 0.1) + -10.0);
}

bool b30_001_cr_fd1_cr_obj_dist_x_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_cr_fd1_cr_obj_id_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_obj_id_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_obj_id_le_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_cr_fd1_cr_obj_rel_vel_x_le_encode(double value)
{
    return (uint16_t)((value - -60.0) / 0.1);
}

double b30_001_cr_fd1_cr_obj_rel_vel_x_le_decode(uint16_t value)
{
    return (((double)value * 0.1) + -60.0);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_x_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_cr_fd1_cr_obj_rel_accel_x_le_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_cr_fd1_cr_obj_rel_accel_x_le_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_cr_fd1_cr_obj_rel_accel_x_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_cr_fd1_cr_obj_sts_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_obj_sts_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_obj_sts_le_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_cr_fd1_cr_obj_motion_type_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_obj_motion_type_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_obj_motion_type_le_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_cr_fd1_rolling_counter_cr_r_2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_rolling_counter_cr_r_2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_rolling_counter_cr_r_2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_cr_fd1_checksum_cr_r_3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_checksum_cr_r_3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_checksum_cr_r_3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_cr_fd1_cr_obj_dist_y_ri_encode(double value)
{
    return (uint8_t)((value - -12.8) / 0.1);
}

double b30_001_cr_fd1_cr_obj_dist_y_ri_decode(uint8_t value)
{
    return (((double)value * 0.1) + -12.8);
}

bool b30_001_cr_fd1_cr_obj_dist_y_ri_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_cr_fd1_cr_obj_dist_x_ri_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.1);
}

double b30_001_cr_fd1_cr_obj_dist_x_ri_decode(uint16_t value)
{
    return (((double)value * 0.1) + -10.0);
}

bool b30_001_cr_fd1_cr_obj_dist_x_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_cr_fd1_cr_obj_id_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_obj_id_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_obj_id_ri_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_cr_fd1_cr_obj_rel_vel_x_ri_encode(double value)
{
    return (uint16_t)((value - -60.0) / 0.1);
}

double b30_001_cr_fd1_cr_obj_rel_vel_x_ri_decode(uint16_t value)
{
    return (((double)value * 0.1) + -60.0);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_x_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_cr_fd1_cr_obj_rel_accel_x_ri_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_cr_fd1_cr_obj_rel_accel_x_ri_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_cr_fd1_cr_obj_rel_accel_x_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_cr_fd1_cr_obj_sts_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_obj_sts_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_obj_sts_ri_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_cr_fd1_cr_obj_motion_type_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_cr_obj_motion_type_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_cr_obj_motion_type_ri_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_cr_fd1_rolling_counter_cr_r_3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_rolling_counter_cr_r_3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_rolling_counter_cr_r_3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_cr_fd1_checksum_cr_r_4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_checksum_cr_r_4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_checksum_cr_r_4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_cr_fd1_cr_obj_rel_accel_y_ri_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_cr_fd1_cr_obj_rel_accel_y_ri_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_cr_fd1_cr_obj_rel_accel_y_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_cr_fd1_cr_obj_rel_accel_y_le_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_cr_fd1_cr_obj_rel_accel_y_le_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_cr_fd1_cr_obj_rel_accel_y_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_cr_fd1_cr_obj_rel_vel_y_ri_encode(double value)
{
    return (uint8_t)((value - -6.4) / 0.1);
}

double b30_001_cr_fd1_cr_obj_rel_vel_y_ri_decode(uint8_t value)
{
    return (((double)value * 0.1) + -6.4);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_y_ri_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_cr_fd1_cr_obj_rel_vel_y_le_encode(double value)
{
    return (uint8_t)((value - -6.4) / 0.1);
}

double b30_001_cr_fd1_cr_obj_rel_vel_y_le_decode(uint8_t value)
{
    return (((double)value * 0.1) + -6.4);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_y_le_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_cr_fd1_rolling_counter_cr_r_4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_cr_fd1_rolling_counter_cr_r_4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_cr_fd1_rolling_counter_cr_r_4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_cr_fd1_cr_obj_dist_x_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_dist_x_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_dist_x_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_dist_y_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_dist_y_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_dist_y_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_rel_vel_x_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_rel_vel_x_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_x_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_rel_vel_y_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_rel_vel_y_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_y_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_r_accel_x_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_r_accel_x_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_r_accel_x_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_r_accel_y_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_r_accel_y_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_r_accel_y_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_dist_x_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_dist_x_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_dist_x_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_dist_y_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_dist_y_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_dist_y_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_rel_vel_x_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_rel_vel_x_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_x_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_rel_vel_y_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_rel_vel_y_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_rel_vel_y_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_r_accel_x_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_r_accel_x_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_r_accel_x_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_cr_fd1_cr_obj_r_accel_y_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_cr_fd1_cr_obj_r_accel_y_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_cr_fd1_cr_obj_r_accel_y_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

int b30_001_csa1_pack(
    uint8_t *dst_p,
    const struct b30_001_csa1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->frnt_wshr_swt_sts, 3u, 0x18u);
    dst_p[1] |= pack_left_shift_u8(src_p->frnt_wipr_swt_sts, 0u, 0x07u);
    dst_p[2] |= pack_left_shift_u8(src_p->frnt_fog_lmp_swt_sts, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->r_turn_lmp_swt_sts, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->l_turn_lmp_swt_sts, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->auto_lmp_swt_sts, 4u, 0x10u);
    dst_p[3] |= pack_left_shift_u8(src_p->auto_hi_low_beam_swt_sts, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->over_veh_beam_swt_sts, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->hi_beam_swt_sts, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->low_beam_swt_sts, 0u, 0x01u);

    return (8);
}

int b30_001_csa1_unpack(
    struct b30_001_csa1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->frnt_wshr_swt_sts = unpack_right_shift_u8(src_p[1], 3u, 0x18u);
    dst_p->frnt_wipr_swt_sts = unpack_right_shift_u8(src_p[1], 0u, 0x07u);
    dst_p->frnt_fog_lmp_swt_sts = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->r_turn_lmp_swt_sts = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->l_turn_lmp_swt_sts = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->auto_lmp_swt_sts = unpack_right_shift_u8(src_p[3], 4u, 0x10u);
    dst_p->auto_hi_low_beam_swt_sts = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->over_veh_beam_swt_sts = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->hi_beam_swt_sts = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->low_beam_swt_sts = unpack_right_shift_u8(src_p[3], 0u, 0x01u);

    return (0);
}

int b30_001_csa1_init(struct b30_001_csa1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_csa1_t));
    msg_p->frnt_wshr_swt_sts = 0.0;
    msg_p->frnt_wipr_swt_sts = 0.0;
    msg_p->frnt_fog_lmp_swt_sts = 0.0;
    msg_p->r_turn_lmp_swt_sts = 0.0;
    msg_p->l_turn_lmp_swt_sts = 0.0;
    msg_p->auto_lmp_swt_sts = 0.0;
    msg_p->auto_hi_low_beam_swt_sts = 0.0;
    msg_p->over_veh_beam_swt_sts = 0.0;
    msg_p->hi_beam_swt_sts = 0.0;
    msg_p->low_beam_swt_sts = 0.0;

    return 0;
}

uint8_t b30_001_csa1_frnt_wshr_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_frnt_wshr_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_frnt_wshr_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_csa1_frnt_wipr_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_frnt_wipr_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_frnt_wipr_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_csa1_frnt_fog_lmp_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_frnt_fog_lmp_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_frnt_fog_lmp_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_r_turn_lmp_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_r_turn_lmp_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_r_turn_lmp_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_l_turn_lmp_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_l_turn_lmp_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_l_turn_lmp_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_auto_lmp_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_auto_lmp_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_auto_lmp_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_auto_hi_low_beam_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_auto_hi_low_beam_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_auto_hi_low_beam_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_over_veh_beam_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_over_veh_beam_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_over_veh_beam_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_hi_beam_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_hi_beam_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_hi_beam_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa1_low_beam_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa1_low_beam_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa1_low_beam_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_csa2_pack(
    uint8_t *dst_p,
    const struct b30_001_csa2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_csa2, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->steer_wheel_ang, 7u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->steer_wheel_ang, 1u, 0xfeu);
    dst_p[2] |= pack_left_shift_u8(src_p->steer_wheel_ang_sign, 0u, 0x01u);
    dst_p[3] |= pack_right_shift_u16(src_p->steer_wheel_spd, 7u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->steer_wheel_spd, 1u, 0xfeu);
    dst_p[4] |= pack_left_shift_u8(src_p->steer_wheel_spd_sign, 0u, 0x01u);
    dst_p[5] |= pack_left_shift_u8(src_p->cc_acc_cruise_off_swt, 7u, 0x80u);
    dst_p[5] |= pack_left_shift_u8(src_p->cc_acc_cancel_off_swt, 6u, 0x40u);
    dst_p[5] |= pack_left_shift_u8(src_p->acc_time_gap_inc_set_swt, 5u, 0x20u);
    dst_p[5] |= pack_left_shift_u8(src_p->acc_time_gap_dec_set_swt, 4u, 0x10u);
    dst_p[6] |= pack_left_shift_u8(src_p->sas_sts, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->cc_acc_inc_set_spd_resu_swt, 3u, 0x08u);
    dst_p[6] |= pack_left_shift_u8(src_p->cc_acc_dec_set_spd_set_swt, 2u, 0x04u);
    dst_p[6] |= pack_left_shift_u8(src_p->cc_acc_swt_err, 0u, 0x01u);
    dst_p[7] |= pack_left_shift_u8(src_p->hwa_ok_off_swt, 4u, 0x10u);
    dst_p[7] |= pack_left_shift_u8(src_p->rollingcounter_csa2, 0u, 0x0fu);

    return (8);
}

int b30_001_csa2_unpack(
    struct b30_001_csa2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_csa2 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->steer_wheel_ang = unpack_left_shift_u16(src_p[1], 7u, 0xffu);
    dst_p->steer_wheel_ang |= unpack_right_shift_u16(src_p[2], 1u, 0xfeu);
    dst_p->steer_wheel_ang_sign = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->steer_wheel_spd = unpack_left_shift_u16(src_p[3], 7u, 0xffu);
    dst_p->steer_wheel_spd |= unpack_right_shift_u16(src_p[4], 1u, 0xfeu);
    dst_p->steer_wheel_spd_sign = unpack_right_shift_u8(src_p[4], 0u, 0x01u);
    dst_p->cc_acc_cruise_off_swt = unpack_right_shift_u8(src_p[5], 7u, 0x80u);
    dst_p->cc_acc_cancel_off_swt = unpack_right_shift_u8(src_p[5], 6u, 0x40u);
    dst_p->acc_time_gap_inc_set_swt = unpack_right_shift_u8(src_p[5], 5u, 0x20u);
    dst_p->acc_time_gap_dec_set_swt = unpack_right_shift_u8(src_p[5], 4u, 0x10u);
    dst_p->sas_sts = unpack_right_shift_u8(src_p[6], 6u, 0xc0u);
    dst_p->cc_acc_inc_set_spd_resu_swt = unpack_right_shift_u8(src_p[6], 3u, 0x08u);
    dst_p->cc_acc_dec_set_spd_set_swt = unpack_right_shift_u8(src_p[6], 2u, 0x04u);
    dst_p->cc_acc_swt_err = unpack_right_shift_u8(src_p[6], 0u, 0x01u);
    dst_p->hwa_ok_off_swt = unpack_right_shift_u8(src_p[7], 4u, 0x10u);
    dst_p->rollingcounter_csa2 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_csa2_init(struct b30_001_csa2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_csa2_t));
    msg_p->checksum_csa2 = 0.0;
    msg_p->steer_wheel_ang = 0.0;
    msg_p->steer_wheel_ang_sign = 0.0;
    msg_p->steer_wheel_spd = 0.0;
    msg_p->steer_wheel_spd_sign = 0.0;
    msg_p->cc_acc_cruise_off_swt = 0.0;
    msg_p->cc_acc_cancel_off_swt = 0.0;
    msg_p->acc_time_gap_inc_set_swt = 0.0;
    msg_p->acc_time_gap_dec_set_swt = 0.0;
    msg_p->sas_sts = 0.0;
    msg_p->cc_acc_inc_set_spd_resu_swt = 0.0;
    msg_p->cc_acc_dec_set_spd_set_swt = 0.0;
    msg_p->cc_acc_swt_err = 0.0;
    msg_p->hwa_ok_off_swt = 0.0;
    msg_p->rollingcounter_csa2 = 0.0;

    return 0;
}

uint8_t b30_001_csa2_checksum_csa2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_checksum_csa2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_checksum_csa2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_csa2_steer_wheel_ang_encode(double value)
{
    return (uint16_t)(value / 0.1);
}

double b30_001_csa2_steer_wheel_ang_decode(uint16_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_csa2_steer_wheel_ang_is_in_range(uint16_t value)
{
    return (value <= 7800u);
}

uint8_t b30_001_csa2_steer_wheel_ang_sign_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_steer_wheel_ang_sign_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_steer_wheel_ang_sign_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_csa2_steer_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.1);
}

double b30_001_csa2_steer_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_csa2_steer_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 10160u);
}

uint8_t b30_001_csa2_steer_wheel_spd_sign_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_steer_wheel_spd_sign_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_steer_wheel_spd_sign_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_cc_acc_cruise_off_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_cc_acc_cruise_off_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_cc_acc_cruise_off_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_cc_acc_cancel_off_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_cc_acc_cancel_off_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_cc_acc_cancel_off_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_acc_time_gap_inc_set_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_acc_time_gap_inc_set_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_acc_time_gap_inc_set_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_acc_time_gap_dec_set_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_acc_time_gap_dec_set_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_acc_time_gap_dec_set_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_sas_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_sas_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_sas_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_csa2_cc_acc_inc_set_spd_resu_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_cc_acc_inc_set_spd_resu_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_cc_acc_inc_set_spd_resu_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_cc_acc_dec_set_spd_set_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_cc_acc_dec_set_spd_set_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_cc_acc_dec_set_spd_set_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_cc_acc_swt_err_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_cc_acc_swt_err_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_cc_acc_swt_err_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_hwa_ok_off_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_hwa_ok_off_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_hwa_ok_off_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_csa2_rollingcounter_csa2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_csa2_rollingcounter_csa2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_csa2_rollingcounter_csa2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_dct2_pack(
    uint8_t *dst_p,
    const struct b30_001_dct2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[7] |= pack_left_shift_u8(src_p->tc_slip_state, 5u, 0xe0u);

    return (8);
}

int b30_001_dct2_unpack(
    struct b30_001_dct2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->tc_slip_state = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);

    return (0);
}

int b30_001_dct2_init(struct b30_001_dct2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_dct2_t));
    msg_p->tc_slip_state = 0.0;

    return 0;
}

uint8_t b30_001_dct2_tc_slip_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct2_tc_slip_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct2_tc_slip_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_dct3_pack(
    uint8_t *dst_p,
    const struct b30_001_dct3_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[2] |= pack_left_shift_u8(src_p->rat_act, 0u, 0xffu);

    return (8);
}

int b30_001_dct3_unpack(
    struct b30_001_dct3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rat_act = unpack_right_shift_u8(src_p[2], 0u, 0xffu);

    return (0);
}

int b30_001_dct3_init(struct b30_001_dct3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_dct3_t));
    msg_p->rat_act = 254.0;

    return 0;
}

uint8_t b30_001_dct3_rat_act_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_dct3_rat_act_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_dct3_rat_act_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

int b30_001_dct5_pack(
    uint8_t *dst_p,
    const struct b30_001_dct5_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_dct5, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->current_gear_valid, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->shift_in_progress, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->target_gear_valid, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->shift_in_prg_valid, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->tcu_aps_available, 4u, 0x10u);
    dst_p[3] |= pack_left_shift_u8(src_p->target_gear, 0u, 0x0fu);
    dst_p[6] |= pack_left_shift_u8(src_p->current_gear, 4u, 0xf0u);
    dst_p[6] |= pack_left_shift_u8(src_p->tgs_lever, 0u, 0x0fu);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_dct5, 0u, 0x0fu);

    return (8);
}

int b30_001_dct5_unpack(
    struct b30_001_dct5_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_dct5 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->current_gear_valid = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->shift_in_progress = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->target_gear_valid = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->shift_in_prg_valid = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->tcu_aps_available = unpack_right_shift_u8(src_p[3], 4u, 0x10u);
    dst_p->target_gear = unpack_right_shift_u8(src_p[3], 0u, 0x0fu);
    dst_p->current_gear = unpack_right_shift_u8(src_p[6], 4u, 0xf0u);
    dst_p->tgs_lever = unpack_right_shift_u8(src_p[6], 0u, 0x0fu);
    dst_p->rolling_counter_dct5 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_dct5_init(struct b30_001_dct5_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_dct5_t));
    msg_p->check_sum_dct5 = 0.0;
    msg_p->current_gear_valid = 0.0;
    msg_p->shift_in_progress = 0.0;
    msg_p->target_gear_valid = 0.0;
    msg_p->shift_in_prg_valid = 0.0;
    msg_p->tcu_aps_available = 0.0;
    msg_p->target_gear = 0.0;
    msg_p->current_gear = 0.0;
    msg_p->tgs_lever = 14.0;
    msg_p->rolling_counter_dct5 = 0.0;

    return 0;
}

uint8_t b30_001_dct5_check_sum_dct5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_check_sum_dct5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_check_sum_dct5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_dct5_current_gear_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_current_gear_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_current_gear_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_dct5_shift_in_progress_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_shift_in_progress_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_shift_in_progress_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_dct5_target_gear_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_target_gear_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_target_gear_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_dct5_shift_in_prg_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_shift_in_prg_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_shift_in_prg_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_dct5_tcu_aps_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_tcu_aps_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_tcu_aps_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_dct5_target_gear_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_target_gear_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_target_gear_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_dct5_current_gear_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_current_gear_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_current_gear_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_dct5_tgs_lever_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_tgs_lever_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_tgs_lever_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_dct5_rolling_counter_dct5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct5_rolling_counter_dct5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct5_rolling_counter_dct5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_dct7_pack(
    uint8_t *dst_p,
    const struct b30_001_dct7_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[4] |= pack_left_shift_u8(src_p->drv_fai_msg, 1u, 0x1eu);

    return (16);
}

int b30_001_dct7_unpack(
    struct b30_001_dct7_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->drv_fai_msg = unpack_right_shift_u8(src_p[4], 1u, 0x1eu);

    return (0);
}

int b30_001_dct7_init(struct b30_001_dct7_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_dct7_t));
    msg_p->drv_fai_msg = 0.0;

    return 0;
}

uint8_t b30_001_dct7_drv_fai_msg_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dct7_drv_fai_msg_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dct7_drv_fai_msg_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ddcm1_pack(
    uint8_t *dst_p,
    const struct b30_001_ddcm1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->rsds_driver_led_sts, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->drv_mirr_fold_unfold_sts, 7u, 0x80u);

    return (8);
}

int b30_001_ddcm1_unpack(
    struct b30_001_ddcm1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rsds_driver_led_sts = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->drv_mirr_fold_unfold_sts = unpack_right_shift_u8(src_p[2], 7u, 0x80u);

    return (0);
}

int b30_001_ddcm1_init(struct b30_001_ddcm1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ddcm1_t));
    msg_p->rsds_driver_led_sts = 0.0;
    msg_p->drv_mirr_fold_unfold_sts = 0.0;

    return 0;
}

uint8_t b30_001_ddcm1_rsds_driver_led_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ddcm1_rsds_driver_led_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ddcm1_rsds_driver_led_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ddcm1_drv_mirr_fold_unfold_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ddcm1_drv_mirr_fold_unfold_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ddcm1_drv_mirr_fold_unfold_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_dms_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_dms_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[4] |= pack_left_shift_u8(src_p->exprsn_sts, 0u, 0x07u);
    dst_p[8] |= pack_left_shift_u8(src_p->checksum_dms2, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->distrctn_lvl_qlty_acc, 1u, 0xfeu);
    dst_p[10] |= pack_left_shift_u8(src_p->drowsns_lvl_qlty_acc, 1u, 0xfeu);
    dst_p[11] |= pack_left_shift_u8(src_p->distrctn_lvl_acc, 5u, 0xe0u);
    dst_p[11] |= pack_left_shift_u8(src_p->drowsns_lvl_acc, 2u, 0x1cu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_dms2, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_dms3, 0u, 0xffu);
    dst_p[17] |= pack_right_shift_u16(src_p->head_posn_x, 3u, 0xffu);
    dst_p[18] |= pack_left_shift_u16(src_p->head_posn_x, 5u, 0xe0u);
    dst_p[18] |= pack_right_shift_u16(src_p->head_posn_y, 6u, 0x1fu);
    dst_p[19] |= pack_left_shift_u16(src_p->head_posn_y, 2u, 0xfcu);
    dst_p[19] |= pack_right_shift_u16(src_p->head_posn_z, 9u, 0x03u);
    dst_p[20] |= pack_right_shift_u16(src_p->head_posn_z, 1u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->head_posn_z, 7u, 0x80u);
    dst_p[21] |= pack_left_shift_u8(src_p->head_pos_qlty, 0u, 0x7fu);
    dst_p[23] |= pack_left_shift_u8(src_p->drv_behv_sts, 4u, 0x70u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_dms3, 0u, 0x0fu);
    dst_p[25] |= pack_right_shift_u16(src_p->gaze_posn_x, 3u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->gaze_posn_x, 5u, 0xe0u);
    dst_p[26] |= pack_right_shift_u16(src_p->gaze_posn_y, 6u, 0x1fu);
    dst_p[27] |= pack_left_shift_u16(src_p->gaze_posn_y, 2u, 0xfcu);
    dst_p[27] |= pack_right_shift_u16(src_p->gaze_posn_z, 9u, 0x03u);
    dst_p[28] |= pack_right_shift_u16(src_p->gaze_posn_z, 1u, 0xffu);
    dst_p[29] |= pack_left_shift_u16(src_p->gaze_posn_z, 7u, 0x80u);
    dst_p[32] |= pack_left_shift_u8(src_p->checksum_dms5, 0u, 0xffu);
    dst_p[33] |= pack_left_shift_u8(src_p->head_yaw_ang, 0u, 0xffu);
    dst_p[34] |= pack_left_shift_u8(src_p->head_pitch_ang, 0u, 0xffu);
    dst_p[35] |= pack_left_shift_u8(src_p->head_roll_ang, 0u, 0xffu);
    dst_p[36] |= pack_left_shift_u8(src_p->head_rot_ang_qlty, 1u, 0xfeu);
    dst_p[36] |= pack_left_shift_u8(src_p->head_detn, 0u, 0x01u);
    dst_p[37] |= pack_left_shift_u8(src_p->dms_sts, 5u, 0xe0u);
    dst_p[39] |= pack_left_shift_u8(src_p->rolling_counter_dms5, 0u, 0x0fu);
    dst_p[40] |= pack_left_shift_u8(src_p->checksum_dms6, 0u, 0xffu);
    dst_p[41] |= pack_left_shift_u8(src_p->robust_gaze_yaw_ang, 0u, 0xffu);
    dst_p[42] |= pack_left_shift_u8(src_p->robust_gaze_pitch_ang, 0u, 0xffu);
    dst_p[43] |= pack_left_shift_u8(src_p->l_eye_open_sts_qlty, 1u, 0xfeu);
    dst_p[44] |= pack_left_shift_u8(src_p->r_eye_open_sts_qlty, 1u, 0xfeu);
    dst_p[45] |= pack_left_shift_u8(src_p->robust_gaze_ang_qlty, 1u, 0xfeu);
    dst_p[46] |= pack_left_shift_u8(src_p->l_eye_open_sts, 6u, 0xc0u);
    dst_p[46] |= pack_left_shift_u8(src_p->r_eye_open_sts, 4u, 0x30u);
    dst_p[47] |= pack_left_shift_u8(src_p->rolling_counter_dms6, 0u, 0x0fu);

    return (64);
}

int b30_001_dms_fd1_unpack(
    struct b30_001_dms_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->exprsn_sts = unpack_right_shift_u8(src_p[4], 0u, 0x07u);
    dst_p->checksum_dms2 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->distrctn_lvl_qlty_acc = unpack_right_shift_u8(src_p[9], 1u, 0xfeu);
    dst_p->drowsns_lvl_qlty_acc = unpack_right_shift_u8(src_p[10], 1u, 0xfeu);
    dst_p->distrctn_lvl_acc = unpack_right_shift_u8(src_p[11], 5u, 0xe0u);
    dst_p->drowsns_lvl_acc = unpack_right_shift_u8(src_p[11], 2u, 0x1cu);
    dst_p->rolling_counter_dms2 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_dms3 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->head_posn_x = unpack_left_shift_u16(src_p[17], 3u, 0xffu);
    dst_p->head_posn_x |= unpack_right_shift_u16(src_p[18], 5u, 0xe0u);
    dst_p->head_posn_y = unpack_left_shift_u16(src_p[18], 6u, 0x1fu);
    dst_p->head_posn_y |= unpack_right_shift_u16(src_p[19], 2u, 0xfcu);
    dst_p->head_posn_z = unpack_left_shift_u16(src_p[19], 9u, 0x03u);
    dst_p->head_posn_z |= unpack_left_shift_u16(src_p[20], 1u, 0xffu);
    dst_p->head_posn_z |= unpack_right_shift_u16(src_p[21], 7u, 0x80u);
    dst_p->head_pos_qlty = unpack_right_shift_u8(src_p[21], 0u, 0x7fu);
    dst_p->drv_behv_sts = unpack_right_shift_u8(src_p[23], 4u, 0x70u);
    dst_p->rolling_counter_dms3 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->gaze_posn_x = unpack_left_shift_u16(src_p[25], 3u, 0xffu);
    dst_p->gaze_posn_x |= unpack_right_shift_u16(src_p[26], 5u, 0xe0u);
    dst_p->gaze_posn_y = unpack_left_shift_u16(src_p[26], 6u, 0x1fu);
    dst_p->gaze_posn_y |= unpack_right_shift_u16(src_p[27], 2u, 0xfcu);
    dst_p->gaze_posn_z = unpack_left_shift_u16(src_p[27], 9u, 0x03u);
    dst_p->gaze_posn_z |= unpack_left_shift_u16(src_p[28], 1u, 0xffu);
    dst_p->gaze_posn_z |= unpack_right_shift_u16(src_p[29], 7u, 0x80u);
    dst_p->checksum_dms5 = unpack_right_shift_u8(src_p[32], 0u, 0xffu);
    dst_p->head_yaw_ang = unpack_right_shift_u8(src_p[33], 0u, 0xffu);
    dst_p->head_pitch_ang = unpack_right_shift_u8(src_p[34], 0u, 0xffu);
    dst_p->head_roll_ang = unpack_right_shift_u8(src_p[35], 0u, 0xffu);
    dst_p->head_rot_ang_qlty = unpack_right_shift_u8(src_p[36], 1u, 0xfeu);
    dst_p->head_detn = unpack_right_shift_u8(src_p[36], 0u, 0x01u);
    dst_p->dms_sts = unpack_right_shift_u8(src_p[37], 5u, 0xe0u);
    dst_p->rolling_counter_dms5 = unpack_right_shift_u8(src_p[39], 0u, 0x0fu);
    dst_p->checksum_dms6 = unpack_right_shift_u8(src_p[40], 0u, 0xffu);
    dst_p->robust_gaze_yaw_ang = unpack_right_shift_u8(src_p[41], 0u, 0xffu);
    dst_p->robust_gaze_pitch_ang = unpack_right_shift_u8(src_p[42], 0u, 0xffu);
    dst_p->l_eye_open_sts_qlty = unpack_right_shift_u8(src_p[43], 1u, 0xfeu);
    dst_p->r_eye_open_sts_qlty = unpack_right_shift_u8(src_p[44], 1u, 0xfeu);
    dst_p->robust_gaze_ang_qlty = unpack_right_shift_u8(src_p[45], 1u, 0xfeu);
    dst_p->l_eye_open_sts = unpack_right_shift_u8(src_p[46], 6u, 0xc0u);
    dst_p->r_eye_open_sts = unpack_right_shift_u8(src_p[46], 4u, 0x30u);
    dst_p->rolling_counter_dms6 = unpack_right_shift_u8(src_p[47], 0u, 0x0fu);

    return (0);
}

int b30_001_dms_fd1_init(struct b30_001_dms_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_dms_fd1_t));
    msg_p->exprsn_sts = 7.0;
    msg_p->checksum_dms2 = 0.0;
    msg_p->distrctn_lvl_qlty_acc = 127.0;
    msg_p->drowsns_lvl_qlty_acc = 127.0;
    msg_p->distrctn_lvl_acc = 7.0;
    msg_p->drowsns_lvl_acc = 7.0;
    msg_p->rolling_counter_dms2 = 0.0;
    msg_p->checksum_dms3 = 0.0;
    msg_p->head_posn_x = 2047.0;
    msg_p->head_posn_y = 2047.0;
    msg_p->head_posn_z = 2047.0;
    msg_p->head_pos_qlty = 127.0;
    msg_p->drv_behv_sts = 7.0;
    msg_p->rolling_counter_dms3 = 0.0;
    msg_p->gaze_posn_x = 2047.0;
    msg_p->gaze_posn_y = 2047.0;
    msg_p->gaze_posn_z = 2047.0;
    msg_p->checksum_dms5 = 0.0;
    msg_p->head_yaw_ang = 255.0;
    msg_p->head_pitch_ang = 255.0;
    msg_p->head_roll_ang = 255.0;
    msg_p->head_rot_ang_qlty = 127.0;
    msg_p->head_detn = 0.0;
    msg_p->dms_sts = 7.0;
    msg_p->rolling_counter_dms5 = 0.0;
    msg_p->checksum_dms6 = 0.0;
    msg_p->robust_gaze_yaw_ang = 255.0;
    msg_p->robust_gaze_pitch_ang = 255.0;
    msg_p->l_eye_open_sts_qlty = 100.0;
    msg_p->r_eye_open_sts_qlty = 100.0;
    msg_p->robust_gaze_ang_qlty = 127.0;
    msg_p->l_eye_open_sts = 2.0;
    msg_p->r_eye_open_sts = 2.0;
    msg_p->rolling_counter_dms6 = 0.0;

    return 0;
}

uint8_t b30_001_dms_fd1_exprsn_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_exprsn_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_exprsn_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_dms_fd1_checksum_dms2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_checksum_dms2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_checksum_dms2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_dms_fd1_distrctn_lvl_qlty_acc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_distrctn_lvl_qlty_acc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_distrctn_lvl_qlty_acc_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_drowsns_lvl_qlty_acc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_drowsns_lvl_qlty_acc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_drowsns_lvl_qlty_acc_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_distrctn_lvl_acc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_distrctn_lvl_acc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_distrctn_lvl_acc_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_dms_fd1_drowsns_lvl_acc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_drowsns_lvl_acc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_drowsns_lvl_acc_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_dms_fd1_rolling_counter_dms2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_rolling_counter_dms2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_rolling_counter_dms2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_dms_fd1_checksum_dms3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_checksum_dms3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_checksum_dms3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_dms_fd1_head_posn_x_encode(double value)
{
    return (uint16_t)(value - -500.0);
}

double b30_001_dms_fd1_head_posn_x_decode(uint16_t value)
{
    return ((double)value + -500.0);
}

bool b30_001_dms_fd1_head_posn_x_is_in_range(uint16_t value)
{
    return (value <= 1500u);
}

uint16_t b30_001_dms_fd1_head_posn_y_encode(double value)
{
    return (uint16_t)(value - -500.0);
}

double b30_001_dms_fd1_head_posn_y_decode(uint16_t value)
{
    return ((double)value + -500.0);
}

bool b30_001_dms_fd1_head_posn_y_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint16_t b30_001_dms_fd1_head_posn_z_encode(double value)
{
    return (uint16_t)(value - -500.0);
}

double b30_001_dms_fd1_head_posn_z_decode(uint16_t value)
{
    return ((double)value + -500.0);
}

bool b30_001_dms_fd1_head_posn_z_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t b30_001_dms_fd1_head_pos_qlty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_head_pos_qlty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_head_pos_qlty_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_drv_behv_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_drv_behv_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_drv_behv_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_dms_fd1_rolling_counter_dms3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_rolling_counter_dms3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_rolling_counter_dms3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t b30_001_dms_fd1_gaze_posn_x_encode(double value)
{
    return (uint16_t)(value - -500.0);
}

double b30_001_dms_fd1_gaze_posn_x_decode(uint16_t value)
{
    return ((double)value + -500.0);
}

bool b30_001_dms_fd1_gaze_posn_x_is_in_range(uint16_t value)
{
    return (value <= 1500u);
}

uint16_t b30_001_dms_fd1_gaze_posn_y_encode(double value)
{
    return (uint16_t)(value - -500.0);
}

double b30_001_dms_fd1_gaze_posn_y_decode(uint16_t value)
{
    return ((double)value + -500.0);
}

bool b30_001_dms_fd1_gaze_posn_y_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint16_t b30_001_dms_fd1_gaze_posn_z_encode(double value)
{
    return (uint16_t)(value - -500.0);
}

double b30_001_dms_fd1_gaze_posn_z_decode(uint16_t value)
{
    return ((double)value + -500.0);
}

bool b30_001_dms_fd1_gaze_posn_z_is_in_range(uint16_t value)
{
    return (value <= 1000u);
}

uint8_t b30_001_dms_fd1_checksum_dms5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_checksum_dms5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_checksum_dms5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_dms_fd1_head_yaw_ang_encode(double value)
{
    return (uint8_t)(value - -75.0);
}

double b30_001_dms_fd1_head_yaw_ang_decode(uint8_t value)
{
    return ((double)value + -75.0);
}

bool b30_001_dms_fd1_head_yaw_ang_is_in_range(uint8_t value)
{
    return (value <= 150u);
}

uint8_t b30_001_dms_fd1_head_pitch_ang_encode(double value)
{
    return (uint8_t)(value - -25.0);
}

double b30_001_dms_fd1_head_pitch_ang_decode(uint8_t value)
{
    return ((double)value + -25.0);
}

bool b30_001_dms_fd1_head_pitch_ang_is_in_range(uint8_t value)
{
    return (value <= 70u);
}

uint8_t b30_001_dms_fd1_head_roll_ang_encode(double value)
{
    return (uint8_t)(value - -45.0);
}

double b30_001_dms_fd1_head_roll_ang_decode(uint8_t value)
{
    return ((double)value + -45.0);
}

bool b30_001_dms_fd1_head_roll_ang_is_in_range(uint8_t value)
{
    return (value <= 90u);
}

uint8_t b30_001_dms_fd1_head_rot_ang_qlty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_head_rot_ang_qlty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_head_rot_ang_qlty_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_head_detn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_head_detn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_head_detn_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_dms_fd1_dms_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_dms_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_dms_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_dms_fd1_rolling_counter_dms5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_rolling_counter_dms5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_rolling_counter_dms5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_dms_fd1_checksum_dms6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_checksum_dms6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_checksum_dms6_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_dms_fd1_robust_gaze_yaw_ang_encode(double value)
{
    return (uint8_t)(value - -90.0);
}

double b30_001_dms_fd1_robust_gaze_yaw_ang_decode(uint8_t value)
{
    return ((double)value + -90.0);
}

bool b30_001_dms_fd1_robust_gaze_yaw_ang_is_in_range(uint8_t value)
{
    return (value <= 180u);
}

uint8_t b30_001_dms_fd1_robust_gaze_pitch_ang_encode(double value)
{
    return (uint8_t)(value - -90.0);
}

double b30_001_dms_fd1_robust_gaze_pitch_ang_decode(uint8_t value)
{
    return ((double)value + -90.0);
}

bool b30_001_dms_fd1_robust_gaze_pitch_ang_is_in_range(uint8_t value)
{
    return (value <= 180u);
}

uint8_t b30_001_dms_fd1_l_eye_open_sts_qlty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_l_eye_open_sts_qlty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_l_eye_open_sts_qlty_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_r_eye_open_sts_qlty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_r_eye_open_sts_qlty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_r_eye_open_sts_qlty_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_robust_gaze_ang_qlty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_robust_gaze_ang_qlty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_robust_gaze_ang_qlty_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_dms_fd1_l_eye_open_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_l_eye_open_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_l_eye_open_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_dms_fd1_r_eye_open_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_r_eye_open_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_r_eye_open_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_dms_fd1_rolling_counter_dms6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dms_fd1_rolling_counter_dms6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dms_fd1_rolling_counter_dms6_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_dvr_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_dvr_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->dvr_sts, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->dvr_360_video_capture_req, 1u, 0x02u);

    return (64);
}

int b30_001_dvr_fd1_unpack(
    struct b30_001_dvr_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->dvr_sts = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->dvr_360_video_capture_req = unpack_right_shift_u8(src_p[1], 1u, 0x02u);

    return (0);
}

int b30_001_dvr_fd1_init(struct b30_001_dvr_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_dvr_fd1_t));
    msg_p->dvr_sts = 0.0;
    msg_p->dvr_360_video_capture_req = 0.0;

    return 0;
}

uint8_t b30_001_dvr_fd1_dvr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dvr_fd1_dvr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dvr_fd1_dvr_sts_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_dvr_fd1_dvr_360_video_capture_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_dvr_fd1_dvr_360_video_capture_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_dvr_fd1_dvr_360_video_capture_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_ecm_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[43] |= pack_left_shift_u8(src_p->eng_state_phev, 5u, 0xe0u);

    return (64);
}

int b30_001_ecm_fd2_unpack(
    struct b30_001_ecm_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->eng_state_phev = unpack_right_shift_u8(src_p[43], 5u, 0xe0u);

    return (0);
}

int b30_001_ecm_fd2_init(struct b30_001_ecm_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm_fd2_t));
    msg_p->eng_state_phev = 0.0;

    return 0;
}

uint8_t b30_001_ecm_fd2_eng_state_phev_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm_fd2_eng_state_phev_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm_fd2_eng_state_phev_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_ecm1_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_ecm1, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->brk_pedal_sts, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->start_stop_sts, 5u, 0xe0u);
    dst_p[5] |= pack_right_shift_u16(src_p->eng_spd, 8u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->eng_spd, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->eng_spd_vldty, 6u, 0xc0u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_ecm1, 0u, 0x0fu);

    return (8);
}

int b30_001_ecm1_unpack(
    struct b30_001_ecm1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_ecm1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->brk_pedal_sts = unpack_right_shift_u8(src_p[2], 2u, 0x0cu);
    dst_p->start_stop_sts = unpack_right_shift_u8(src_p[4], 5u, 0xe0u);
    dst_p->eng_spd = unpack_left_shift_u16(src_p[5], 8u, 0xffu);
    dst_p->eng_spd |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->eng_spd_vldty = unpack_right_shift_u8(src_p[7], 6u, 0xc0u);
    dst_p->rolling_counter_ecm1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_ecm1_init(struct b30_001_ecm1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm1_t));
    msg_p->checksum_ecm1 = 0.0;
    msg_p->brk_pedal_sts = 0.0;
    msg_p->start_stop_sts = 0.0;
    msg_p->eng_spd = 0.0;
    msg_p->eng_spd_vldty = 2.0;
    msg_p->rolling_counter_ecm1 = 0.0;

    return 0;
}

uint8_t b30_001_ecm1_checksum_ecm1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm1_checksum_ecm1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm1_checksum_ecm1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm1_brk_pedal_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm1_brk_pedal_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm1_brk_pedal_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ecm1_start_stop_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm1_start_stop_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm1_start_stop_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_ecm1_eng_spd_encode(double value)
{
    return (uint16_t)(value / 0.125);
}

double b30_001_ecm1_eng_spd_decode(uint16_t value)
{
    return ((double)value * 0.125);
}

bool b30_001_ecm1_eng_spd_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm1_eng_spd_vldty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm1_eng_spd_vldty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm1_eng_spd_vldty_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t b30_001_ecm1_rolling_counter_ecm1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm1_rolling_counter_ecm1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm1_rolling_counter_ecm1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ecm2_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_ecm2, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->accel_pedal_posn, 0u, 0xffu);
    dst_p[6] |= pack_left_shift_u8(src_p->accel_pedal_posn_vldty, 1u, 0x06u);
    dst_p[7] |= pack_left_shift_u8(src_p->eng_state, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_ecm2, 0u, 0x0fu);

    return (8);
}

int b30_001_ecm2_unpack(
    struct b30_001_ecm2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_ecm2 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->accel_pedal_posn = unpack_right_shift_u8(src_p[3], 0u, 0xffu);
    dst_p->accel_pedal_posn_vldty = unpack_right_shift_u8(src_p[6], 1u, 0x06u);
    dst_p->eng_state = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->rolling_counter_ecm2 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_ecm2_init(struct b30_001_ecm2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm2_t));
    msg_p->checksum_ecm2 = 0.0;
    msg_p->accel_pedal_posn = 0.0;
    msg_p->accel_pedal_posn_vldty = 2.0;
    msg_p->eng_state = 0.0;
    msg_p->rolling_counter_ecm2 = 0.0;

    return 0;
}

uint8_t b30_001_ecm2_checksum_ecm2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm2_checksum_ecm2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm2_checksum_ecm2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm2_accel_pedal_posn_encode(double value)
{
    return (uint8_t)(value / 0.3937);
}

double b30_001_ecm2_accel_pedal_posn_decode(uint8_t value)
{
    return ((double)value * 0.3937);
}

bool b30_001_ecm2_accel_pedal_posn_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm2_accel_pedal_posn_vldty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm2_accel_pedal_posn_vldty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm2_accel_pedal_posn_vldty_is_in_range(uint8_t value)
{
    return (value <= 2u);
}

uint8_t b30_001_ecm2_eng_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm2_eng_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm2_eng_state_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ecm2_rolling_counter_ecm2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm2_rolling_counter_ecm2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm2_rolling_counter_ecm2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ecm24_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm24_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[4] |= pack_left_shift_u8(src_p->tgt_asl_veh_spd, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->asl_ctrl_sts, 4u, 0x70u);

    return (8);
}

int b30_001_ecm24_unpack(
    struct b30_001_ecm24_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->tgt_asl_veh_spd = unpack_right_shift_u8(src_p[4], 0u, 0xffu);
    dst_p->asl_ctrl_sts = unpack_right_shift_u8(src_p[7], 4u, 0x70u);

    return (0);
}

int b30_001_ecm24_init(struct b30_001_ecm24_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm24_t));
    msg_p->tgt_asl_veh_spd = 0.0;
    msg_p->asl_ctrl_sts = 0.0;

    return 0;
}

uint8_t b30_001_ecm24_tgt_asl_veh_spd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm24_tgt_asl_veh_spd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm24_tgt_asl_veh_spd_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm24_asl_ctrl_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm24_asl_ctrl_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm24_asl_ctrl_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_ecm3_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm3_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[2] |= pack_left_shift_u8(src_p->max_eng_trq_norm, 1u, 0xfeu);
    dst_p[6] |= pack_left_shift_u8(src_p->eng_limp_home_sts, 3u, 0x08u);

    return (8);
}

int b30_001_ecm3_unpack(
    struct b30_001_ecm3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->max_eng_trq_norm = unpack_right_shift_u8(src_p[2], 1u, 0xfeu);
    dst_p->eng_limp_home_sts = unpack_right_shift_u8(src_p[6], 3u, 0x08u);

    return (0);
}

int b30_001_ecm3_init(struct b30_001_ecm3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm3_t));
    msg_p->max_eng_trq_norm = 0.0;
    msg_p->eng_limp_home_sts = 0.0;

    return 0;
}

uint8_t b30_001_ecm3_max_eng_trq_norm_encode(double value)
{
    return (uint8_t)(value / 5.0);
}

double b30_001_ecm3_max_eng_trq_norm_decode(uint8_t value)
{
    return ((double)value * 5.0);
}

bool b30_001_ecm3_max_eng_trq_norm_is_in_range(uint8_t value)
{
    return (value <= 112u);
}

uint8_t b30_001_ecm3_eng_limp_home_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm3_eng_limp_home_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm3_eng_limp_home_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_ecm4_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm4_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_ecm4, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->net_eng_trq, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->net_eng_trq, 0u, 0xffu);
    dst_p[3] |= pack_right_shift_u16(src_p->drv_eng_trq_req, 8u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->drv_eng_trq_req, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->drv_eng_trq_req_vld, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_ecm4, 0u, 0x0fu);

    return (8);
}

int b30_001_ecm4_unpack(
    struct b30_001_ecm4_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_ecm4 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->net_eng_trq = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->net_eng_trq |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->drv_eng_trq_req = unpack_left_shift_u16(src_p[3], 8u, 0xffu);
    dst_p->drv_eng_trq_req |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->drv_eng_trq_req_vld = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->rolling_counter_ecm4 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_ecm4_init(struct b30_001_ecm4_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm4_t));
    msg_p->checksum_ecm4 = 0.0;
    msg_p->net_eng_trq = 32767.0;
    msg_p->drv_eng_trq_req = 32767.0;
    msg_p->drv_eng_trq_req_vld = 1.0;
    msg_p->rolling_counter_ecm4 = 0.0;

    return 0;
}

uint8_t b30_001_ecm4_checksum_ecm4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm4_checksum_ecm4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm4_checksum_ecm4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ecm4_net_eng_trq_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_ecm4_net_eng_trq_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_ecm4_net_eng_trq_is_in_range(uint16_t value)
{
    return (value <= 65534u);
}

uint16_t b30_001_ecm4_drv_eng_trq_req_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_ecm4_drv_eng_trq_req_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_ecm4_drv_eng_trq_req_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm4_drv_eng_trq_req_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm4_drv_eng_trq_req_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm4_drv_eng_trq_req_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ecm4_rolling_counter_ecm4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm4_rolling_counter_ecm4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm4_rolling_counter_ecm4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ecm7_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm7_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[5] |= pack_right_shift_u16(src_p->eng_trq_red_lim_fast, 8u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->eng_trq_red_lim_fast, 0u, 0xffu);

    return (8);
}

int b30_001_ecm7_unpack(
    struct b30_001_ecm7_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->eng_trq_red_lim_fast = unpack_left_shift_u16(src_p[5], 8u, 0xffu);
    dst_p->eng_trq_red_lim_fast |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);

    return (0);
}

int b30_001_ecm7_init(struct b30_001_ecm7_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm7_t));
    msg_p->eng_trq_red_lim_fast = 32767.0;

    return 0;
}

uint16_t b30_001_ecm7_eng_trq_red_lim_fast_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_ecm7_eng_trq_red_lim_fast_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_ecm7_eng_trq_red_lim_fast_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

int b30_001_ecm8_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_right_shift_u16(src_p->eng_trq_min_act, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->eng_trq_min_act, 0u, 0xffu);
    dst_p[3] |= pack_right_shift_u16(src_p->eng_trq_max_act_spd, 8u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->eng_trq_max_act_spd, 0u, 0xffu);
    dst_p[5] |= pack_right_shift_u16(src_p->trq_loss, 8u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->trq_loss, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->trq_loss_vldty, 5u, 0x20u);

    return (8);
}

int b30_001_ecm8_unpack(
    struct b30_001_ecm8_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->eng_trq_min_act = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->eng_trq_min_act |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->eng_trq_max_act_spd = unpack_left_shift_u16(src_p[3], 8u, 0xffu);
    dst_p->eng_trq_max_act_spd |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->trq_loss = unpack_left_shift_u16(src_p[5], 8u, 0xffu);
    dst_p->trq_loss |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->trq_loss_vldty = unpack_right_shift_u8(src_p[7], 5u, 0x20u);

    return (0);
}

int b30_001_ecm8_init(struct b30_001_ecm8_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm8_t));
    msg_p->eng_trq_min_act = 32767.0;
    msg_p->eng_trq_max_act_spd = 32767.0;
    msg_p->trq_loss = 32767.0;
    msg_p->trq_loss_vldty = 1.0;

    return 0;
}

uint16_t b30_001_ecm8_eng_trq_min_act_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_ecm8_eng_trq_min_act_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_ecm8_eng_trq_min_act_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ecm8_eng_trq_max_act_spd_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_ecm8_eng_trq_max_act_spd_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_ecm8_eng_trq_max_act_spd_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ecm8_trq_loss_encode(double value)
{
    return (uint16_t)((value - -100.0) / 0.0030518);
}

double b30_001_ecm8_trq_loss_decode(uint16_t value)
{
    return (((double)value * 0.0030518) + -100.0);
}

bool b30_001_ecm8_trq_loss_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm8_trq_loss_vldty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm8_trq_loss_vldty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm8_trq_loss_vldty_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_ecm9_pack(
    uint8_t *dst_p,
    const struct b30_001_ecm9_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_ecm9, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->acc_pedal_override, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->ecm_interface_aps, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->accel_pedl_posn_diagc, 0u, 0xffu);
    dst_p[6] |= pack_left_shift_u8(src_p->ecm_resp_acc, 7u, 0x80u);
    dst_p[6] |= pack_left_shift_u8(src_p->ecmacc_interface, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_ecm9, 0u, 0x0fu);

    return (8);
}

int b30_001_ecm9_unpack(
    struct b30_001_ecm9_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_ecm9 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->acc_pedal_override = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->ecm_interface_aps = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->accel_pedl_posn_diagc = unpack_right_shift_u8(src_p[4], 0u, 0xffu);
    dst_p->ecm_resp_acc = unpack_right_shift_u8(src_p[6], 7u, 0x80u);
    dst_p->ecmacc_interface = unpack_right_shift_u8(src_p[6], 6u, 0x40u);
    dst_p->rolling_counter_ecm9 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_ecm9_init(struct b30_001_ecm9_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ecm9_t));
    msg_p->checksum_ecm9 = 0.0;
    msg_p->acc_pedal_override = 0.0;
    msg_p->ecm_interface_aps = 0.0;
    msg_p->accel_pedl_posn_diagc = 0.0;
    msg_p->ecm_resp_acc = 0.0;
    msg_p->ecmacc_interface = 0.0;
    msg_p->rolling_counter_ecm9 = 0.0;

    return 0;
}

uint8_t b30_001_ecm9_checksum_ecm9_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm9_checksum_ecm9_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm9_checksum_ecm9_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm9_acc_pedal_override_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm9_acc_pedal_override_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm9_acc_pedal_override_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ecm9_ecm_interface_aps_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm9_ecm_interface_aps_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm9_ecm_interface_aps_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ecm9_accel_pedl_posn_diagc_encode(double value)
{
    return (uint8_t)(value / 0.3937);
}

double b30_001_ecm9_accel_pedl_posn_diagc_decode(uint8_t value)
{
    return ((double)value * 0.3937);
}

bool b30_001_ecm9_accel_pedl_posn_diagc_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ecm9_ecm_resp_acc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm9_ecm_resp_acc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm9_ecm_resp_acc_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ecm9_ecmacc_interface_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm9_ecmacc_interface_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm9_ecmacc_interface_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ecm9_rolling_counter_ecm9_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ecm9_rolling_counter_ecm9_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ecm9_rolling_counter_ecm9_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_eem1_pack(
    uint8_t *dst_p,
    const struct b30_001_eem1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->tran_p_mode_sts, 7u, 0x80u);
    dst_p[0] |= pack_left_shift_u8(src_p->stat_pwr_sv_lvl, 4u, 0x70u);

    return (8);
}

int b30_001_eem1_unpack(
    struct b30_001_eem1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->tran_p_mode_sts = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->stat_pwr_sv_lvl = unpack_right_shift_u8(src_p[0], 4u, 0x70u);

    return (0);
}

int b30_001_eem1_init(struct b30_001_eem1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_eem1_t));
    msg_p->tran_p_mode_sts = 0.0;
    msg_p->stat_pwr_sv_lvl = 0.0;

    return 0;
}

uint8_t b30_001_eem1_tran_p_mode_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eem1_tran_p_mode_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eem1_tran_p_mode_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eem1_stat_pwr_sv_lvl_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eem1_stat_pwr_sv_lvl_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eem1_stat_pwr_sv_lvl_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_epb1_pack(
    uint8_t *dst_p,
    const struct b30_001_epb1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_epb1, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->epb_swt_posn_vld, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->epb_swt_posn, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->epb_sts, 4u, 0x30u);
    dst_p[3] |= pack_left_shift_u8(src_p->epb_err_sts, 2u, 0x0cu);
    dst_p[6] |= pack_left_shift_u8(src_p->esp_dst_sts, 2u, 0x1cu);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_epb1, 0u, 0x0fu);

    return (8);
}

int b30_001_epb1_unpack(
    struct b30_001_epb1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_epb1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->epb_swt_posn_vld = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->epb_swt_posn = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->epb_sts = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->epb_err_sts = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->esp_dst_sts = unpack_right_shift_u8(src_p[6], 2u, 0x1cu);
    dst_p->rolling_counter_epb1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_epb1_init(struct b30_001_epb1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_epb1_t));
    msg_p->check_sum_epb1 = 0.0;
    msg_p->epb_swt_posn_vld = 0.0;
    msg_p->epb_swt_posn = 0.0;
    msg_p->epb_sts = 0.0;
    msg_p->epb_err_sts = 0.0;
    msg_p->esp_dst_sts = 0.0;
    msg_p->rolling_counter_epb1 = 0.0;

    return 0;
}

uint8_t b30_001_epb1_check_sum_epb1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_check_sum_epb1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_check_sum_epb1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_epb1_epb_swt_posn_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_epb_swt_posn_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_epb_swt_posn_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_epb1_epb_swt_posn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_epb_swt_posn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_epb_swt_posn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_epb1_epb_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_epb_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_epb_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_epb1_epb_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_epb_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_epb_err_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_epb1_esp_dst_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_esp_dst_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_esp_dst_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_epb1_rolling_counter_epb1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_epb1_rolling_counter_epb1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_epb1_rolling_counter_epb1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_eps_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_eps_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_eps1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->eps_trq_snsr_sts, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->eps_fail_sts, 4u, 0x30u);
    dst_p[3] |= pack_left_shift_u8(src_p->eps_interfer_detd, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->eps_interfer_detd_vld, 6u, 0x40u);
    dst_p[3] |= pack_left_shift_u8(src_p->eps_avail_sts, 4u, 0x30u);
    dst_p[6] |= pack_left_shift_u8(src_p->eps_steer_mod, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_eps1, 0u, 0x0fu);
    dst_p[8] |= pack_left_shift_u8(src_p->check_sum_eps2, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->eps_drv_inp_trq_val_high_reslolution, 4u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->eps_drv_inp_trq_val_high_reslolution, 4u, 0xf0u);
    dst_p[13] |= pack_right_shift_u16(src_p->eps_lka_torq_ovrl_dlvd, 8u, 0xffu);
    dst_p[14] |= pack_left_shift_u16(src_p->eps_lka_torq_ovrl_dlvd, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->eps_lka_torq_ovrl_dlvd_vld, 7u, 0x80u);
    dst_p[15] |= pack_left_shift_u8(src_p->eps_drv_inp_trq_val_high_res_vld, 6u, 0x40u);
    dst_p[15] |= pack_left_shift_u8(src_p->eps_lka_trq_ovl_dlvd_sts, 4u, 0x30u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_eps2, 0u, 0x0fu);

    return (64);
}

int b30_001_eps_fd1_unpack(
    struct b30_001_eps_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->check_sum_eps1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->eps_trq_snsr_sts = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->eps_fail_sts = unpack_right_shift_u8(src_p[1], 4u, 0x30u);
    dst_p->eps_interfer_detd = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->eps_interfer_detd_vld = unpack_right_shift_u8(src_p[3], 6u, 0x40u);
    dst_p->eps_avail_sts = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->eps_steer_mod = unpack_right_shift_u8(src_p[6], 5u, 0xe0u);
    dst_p->rolling_counter_eps1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);
    dst_p->check_sum_eps2 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->eps_drv_inp_trq_val_high_reslolution = unpack_left_shift_u16(src_p[9], 4u, 0xffu);
    dst_p->eps_drv_inp_trq_val_high_reslolution |= unpack_right_shift_u16(src_p[10], 4u, 0xf0u);
    dst_p->eps_lka_torq_ovrl_dlvd = unpack_left_shift_u16(src_p[13], 8u, 0xffu);
    dst_p->eps_lka_torq_ovrl_dlvd |= unpack_right_shift_u16(src_p[14], 0u, 0xffu);
    dst_p->eps_lka_torq_ovrl_dlvd_vld = unpack_right_shift_u8(src_p[15], 7u, 0x80u);
    dst_p->eps_drv_inp_trq_val_high_res_vld = unpack_right_shift_u8(src_p[15], 6u, 0x40u);
    dst_p->eps_lka_trq_ovl_dlvd_sts = unpack_right_shift_u8(src_p[15], 4u, 0x30u);
    dst_p->rolling_counter_eps2 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);

    return (0);
}

int b30_001_eps_fd1_init(struct b30_001_eps_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_eps_fd1_t));
    msg_p->check_sum_eps1 = 0.0;
    msg_p->eps_trq_snsr_sts = 1.0;
    msg_p->eps_fail_sts = 0.0;
    msg_p->eps_interfer_detd = 0.0;
    msg_p->eps_interfer_detd_vld = 0.0;
    msg_p->eps_avail_sts = 0.0;
    msg_p->eps_steer_mod = 0.0;
    msg_p->rolling_counter_eps1 = 0.0;
    msg_p->check_sum_eps2 = 0.0;
    msg_p->eps_lka_torq_ovrl_dlvd = 0.0;
    msg_p->eps_lka_torq_ovrl_dlvd_vld = 0.0;
    msg_p->eps_drv_inp_trq_val_high_res_vld = 0.0;
    msg_p->eps_lka_trq_ovl_dlvd_sts = 0.0;
    msg_p->rolling_counter_eps2 = 0.0;

    return 0;
}

uint8_t b30_001_eps_fd1_check_sum_eps1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_check_sum_eps1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_check_sum_eps1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_eps_fd1_eps_trq_snsr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_trq_snsr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_trq_snsr_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps_fd1_eps_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_eps_fd1_eps_interfer_detd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_interfer_detd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_interfer_detd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps_fd1_eps_interfer_detd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_interfer_detd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_interfer_detd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps_fd1_eps_avail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_avail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_avail_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_eps_fd1_eps_steer_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_steer_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_steer_mod_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_eps_fd1_rolling_counter_eps1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_rolling_counter_eps1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_rolling_counter_eps1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_eps_fd1_check_sum_eps2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_check_sum_eps2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_check_sum_eps2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_eps_fd1_eps_drv_inp_trq_val_high_reslolution_encode(double value)
{
    return (uint16_t)((value - -31.984375) / 0.015625);
}

double b30_001_eps_fd1_eps_drv_inp_trq_val_high_reslolution_decode(uint16_t value)
{
    return (((double)value * 0.015625) + -31.984375);
}

bool b30_001_eps_fd1_eps_drv_inp_trq_val_high_reslolution_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t b30_001_eps_fd1_eps_lka_torq_ovrl_dlvd_encode(double value)
{
    return (uint16_t)((value - -15.0) / 0.01);
}

double b30_001_eps_fd1_eps_lka_torq_ovrl_dlvd_decode(uint16_t value)
{
    return (((double)value * 0.01) + -15.0);
}

bool b30_001_eps_fd1_eps_lka_torq_ovrl_dlvd_is_in_range(uint16_t value)
{
    return (value <= 3000u);
}

uint8_t b30_001_eps_fd1_eps_lka_torq_ovrl_dlvd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_lka_torq_ovrl_dlvd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_lka_torq_ovrl_dlvd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps_fd1_eps_drv_inp_trq_val_high_res_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_drv_inp_trq_val_high_res_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_drv_inp_trq_val_high_res_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps_fd1_eps_lka_trq_ovl_dlvd_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_eps_lka_trq_ovl_dlvd_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_eps_lka_trq_ovl_dlvd_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_eps_fd1_rolling_counter_eps2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps_fd1_rolling_counter_eps2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps_fd1_rolling_counter_eps2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_eps1_pack(
    uint8_t *dst_p,
    const struct b30_001_eps1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_eps1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->eps_trq_snsr_sts, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->eps_fail_sts, 4u, 0x30u);
    dst_p[3] |= pack_left_shift_u8(src_p->eps_interfer_detd, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->eps_interfer_detd_vld, 6u, 0x40u);
    dst_p[3] |= pack_left_shift_u8(src_p->eps_avail_sts, 4u, 0x30u);
    dst_p[6] |= pack_left_shift_u8(src_p->eps_steer_mod, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_eps1, 0u, 0x0fu);

    return (8);
}

int b30_001_eps1_unpack(
    struct b30_001_eps1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_eps1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->eps_trq_snsr_sts = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->eps_fail_sts = unpack_right_shift_u8(src_p[1], 4u, 0x30u);
    dst_p->eps_interfer_detd = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->eps_interfer_detd_vld = unpack_right_shift_u8(src_p[3], 6u, 0x40u);
    dst_p->eps_avail_sts = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->eps_steer_mod = unpack_right_shift_u8(src_p[6], 5u, 0xe0u);
    dst_p->rolling_counter_eps1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_eps1_init(struct b30_001_eps1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_eps1_t));
    msg_p->check_sum_eps1 = 0.0;
    msg_p->eps_trq_snsr_sts = 1.0;
    msg_p->eps_fail_sts = 0.0;
    msg_p->eps_interfer_detd = 0.0;
    msg_p->eps_interfer_detd_vld = 0.0;
    msg_p->eps_avail_sts = 0.0;
    msg_p->eps_steer_mod = 0.0;
    msg_p->rolling_counter_eps1 = 0.0;

    return 0;
}

uint8_t b30_001_eps1_check_sum_eps1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_check_sum_eps1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_check_sum_eps1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_eps1_eps_trq_snsr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_eps_trq_snsr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_eps_trq_snsr_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps1_eps_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_eps_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_eps_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_eps1_eps_interfer_detd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_eps_interfer_detd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_eps_interfer_detd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps1_eps_interfer_detd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_eps_interfer_detd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_eps_interfer_detd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps1_eps_avail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_eps_avail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_eps_avail_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_eps1_eps_steer_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_eps_steer_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_eps_steer_mod_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_eps1_rolling_counter_eps1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps1_rolling_counter_eps1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps1_rolling_counter_eps1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_eps2_pack(
    uint8_t *dst_p,
    const struct b30_001_eps2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_eps2, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->eps_drv_inp_trq_val_high_reslolution, 4u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->eps_drv_inp_trq_val_high_reslolution, 4u, 0xf0u);
    dst_p[5] |= pack_right_shift_u16(src_p->eps_lka_torq_ovrl_dlvd, 8u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->eps_lka_torq_ovrl_dlvd, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->eps_lka_torq_ovrl_dlvd_vld, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->eps_lka_trq_ovl_dlvd_sts, 4u, 0x30u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_eps2, 0u, 0x0fu);

    return (8);
}

int b30_001_eps2_unpack(
    struct b30_001_eps2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_eps2 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->eps_drv_inp_trq_val_high_reslolution = unpack_left_shift_u16(src_p[1], 4u, 0xffu);
    dst_p->eps_drv_inp_trq_val_high_reslolution |= unpack_right_shift_u16(src_p[2], 4u, 0xf0u);
    dst_p->eps_lka_torq_ovrl_dlvd = unpack_left_shift_u16(src_p[5], 8u, 0xffu);
    dst_p->eps_lka_torq_ovrl_dlvd |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->eps_lka_torq_ovrl_dlvd_vld = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->eps_lka_trq_ovl_dlvd_sts = unpack_right_shift_u8(src_p[7], 4u, 0x30u);
    dst_p->rolling_counter_eps2 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_eps2_init(struct b30_001_eps2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_eps2_t));
    msg_p->check_sum_eps2 = 0.0;
    msg_p->eps_lka_torq_ovrl_dlvd = 0.0;
    msg_p->eps_lka_torq_ovrl_dlvd_vld = 0.0;
    msg_p->eps_lka_trq_ovl_dlvd_sts = 0.0;
    msg_p->rolling_counter_eps2 = 0.0;

    return 0;
}

uint8_t b30_001_eps2_check_sum_eps2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps2_check_sum_eps2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps2_check_sum_eps2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_eps2_eps_drv_inp_trq_val_high_reslolution_encode(double value)
{
    return (uint16_t)((value - -31.984375) / 0.015625);
}

double b30_001_eps2_eps_drv_inp_trq_val_high_reslolution_decode(uint16_t value)
{
    return (((double)value * 0.015625) + -31.984375);
}

bool b30_001_eps2_eps_drv_inp_trq_val_high_reslolution_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t b30_001_eps2_eps_lka_torq_ovrl_dlvd_encode(double value)
{
    return (uint16_t)((value - -15.0) / 0.01);
}

double b30_001_eps2_eps_lka_torq_ovrl_dlvd_decode(uint16_t value)
{
    return (((double)value * 0.01) + -15.0);
}

bool b30_001_eps2_eps_lka_torq_ovrl_dlvd_is_in_range(uint16_t value)
{
    return (value <= 3000u);
}

uint8_t b30_001_eps2_eps_lka_torq_ovrl_dlvd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps2_eps_lka_torq_ovrl_dlvd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps2_eps_lka_torq_ovrl_dlvd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_eps2_eps_lka_trq_ovl_dlvd_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps2_eps_lka_trq_ovl_dlvd_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps2_eps_lka_trq_ovl_dlvd_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_eps2_rolling_counter_eps2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_eps2_rolling_counter_eps2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_eps2_rolling_counter_eps2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_esp_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_esp_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->check_sum_esp2, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->veh_standstill, 5u, 0x60u);
    dst_p[9] |= pack_left_shift_u8(src_p->no_brk_force, 4u, 0x10u);
    dst_p[9] |= pack_left_shift_u8(src_p->brk_dsk_ovrheatd, 3u, 0x08u);
    dst_p[9] |= pack_left_shift_u8(src_p->cta_brk_available, 2u, 0x04u);
    dst_p[9] |= pack_left_shift_u8(src_p->esp_diag_actv, 1u, 0x02u);
    dst_p[10] |= pack_left_shift_u8(src_p->aba_actv, 7u, 0x80u);
    dst_p[10] |= pack_left_shift_u8(src_p->ab_aavailable, 6u, 0x40u);
    dst_p[10] |= pack_left_shift_u8(src_p->abp_actv, 5u, 0x20u);
    dst_p[10] |= pack_left_shift_u8(src_p->abp_available, 4u, 0x10u);
    dst_p[10] |= pack_left_shift_u8(src_p->aeb_available, 3u, 0x08u);
    dst_p[10] |= pack_left_shift_u8(src_p->aebba_actv, 2u, 0x04u);
    dst_p[10] |= pack_left_shift_u8(src_p->aebib_actv, 1u, 0x02u);
    dst_p[11] |= pack_left_shift_u8(src_p->awb_actv, 7u, 0x80u);
    dst_p[11] |= pack_left_shift_u8(src_p->awb_available, 6u, 0x40u);
    dst_p[11] |= pack_left_shift_u8(src_p->cdd_available, 5u, 0x20u);
    dst_p[11] |= pack_left_shift_u8(src_p->cdd_actv, 4u, 0x10u);
    dst_p[11] |= pack_left_shift_u8(src_p->hdc_ctrl, 2u, 0x0cu);
    dst_p[12] |= pack_left_shift_u8(src_p->cdp_actv, 7u, 0x80u);
    dst_p[12] |= pack_left_shift_u8(src_p->avh_sts, 4u, 0x30u);
    dst_p[12] |= pack_left_shift_u8(src_p->avh_err_sts, 2u, 0x0cu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_esp2, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->check_sum_esp1, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->esp_fail_sts, 7u, 0x80u);
    dst_p[17] |= pack_left_shift_u8(src_p->esp_brk_lmp_ctrl, 6u, 0x40u);
    dst_p[17] |= pack_left_shift_u8(src_p->esp_func_off_sts, 4u, 0x10u);
    dst_p[18] |= pack_left_shift_u8(src_p->btc_actv, 7u, 0x80u);
    dst_p[18] |= pack_left_shift_u8(src_p->ptc_actv, 6u, 0x40u);
    dst_p[18] |= pack_left_shift_u8(src_p->msr_actv, 5u, 0x20u);
    dst_p[18] |= pack_left_shift_u8(src_p->vdc_actv, 4u, 0x10u);
    dst_p[18] |= pack_left_shift_u8(src_p->esp_master_cyl_brk_press_vld, 0u, 0x01u);
    dst_p[19] |= pack_right_shift_u16(src_p->esp_master_cyl_brk_press, 8u, 0xffu);
    dst_p[20] |= pack_left_shift_u16(src_p->esp_master_cyl_brk_press, 0u, 0xffu);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_esp1, 0u, 0x0fu);
    dst_p[24] |= pack_left_shift_u8(src_p->check_sum_esp7, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->four_whls_brk_trq, 6u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->four_whls_brk_trq, 2u, 0xfcu);
    dst_p[26] |= pack_left_shift_u8(src_p->esp_meb_brk_avail, 1u, 0x02u);
    dst_p[27] |= pack_left_shift_u8(src_p->lgt_ctrlr_sts, 5u, 0xe0u);
    dst_p[27] |= pack_left_shift_u8(src_p->lgt_ctrlr_failr, 2u, 0x1cu);
    dst_p[31] |= pack_left_shift_u8(src_p->lgt_ctrlr_avail, 5u, 0xe0u);
    dst_p[31] |= pack_left_shift_u8(src_p->rolling_counter_esp7, 0u, 0x0fu);
    dst_p[40] |= pack_left_shift_u8(src_p->check_sum_abs3, 0u, 0xffu);
    dst_p[41] |= pack_left_shift_u8(src_p->abs_fail_sts, 7u, 0x80u);
    dst_p[41] |= pack_left_shift_u8(src_p->ebd_fail_sts, 6u, 0x40u);
    dst_p[41] |= pack_left_shift_u8(src_p->veh_spd_vld, 5u, 0x20u);
    dst_p[41] |= pack_right_shift_u16(src_p->veh_spd, 8u, 0x1fu);
    dst_p[42] |= pack_left_shift_u16(src_p->veh_spd, 0u, 0xffu);
    dst_p[43] |= pack_left_shift_u8(src_p->ebd_actv, 7u, 0x80u);
    dst_p[43] |= pack_left_shift_u8(src_p->abs_actv, 3u, 0x08u);
    dst_p[47] |= pack_left_shift_u8(src_p->rolling_counter_abs3, 0u, 0x0fu);

    return (64);
}

int b30_001_esp_fd2_unpack(
    struct b30_001_esp_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->check_sum_esp2 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->veh_standstill = unpack_right_shift_u8(src_p[9], 5u, 0x60u);
    dst_p->no_brk_force = unpack_right_shift_u8(src_p[9], 4u, 0x10u);
    dst_p->brk_dsk_ovrheatd = unpack_right_shift_u8(src_p[9], 3u, 0x08u);
    dst_p->cta_brk_available = unpack_right_shift_u8(src_p[9], 2u, 0x04u);
    dst_p->esp_diag_actv = unpack_right_shift_u8(src_p[9], 1u, 0x02u);
    dst_p->aba_actv = unpack_right_shift_u8(src_p[10], 7u, 0x80u);
    dst_p->ab_aavailable = unpack_right_shift_u8(src_p[10], 6u, 0x40u);
    dst_p->abp_actv = unpack_right_shift_u8(src_p[10], 5u, 0x20u);
    dst_p->abp_available = unpack_right_shift_u8(src_p[10], 4u, 0x10u);
    dst_p->aeb_available = unpack_right_shift_u8(src_p[10], 3u, 0x08u);
    dst_p->aebba_actv = unpack_right_shift_u8(src_p[10], 2u, 0x04u);
    dst_p->aebib_actv = unpack_right_shift_u8(src_p[10], 1u, 0x02u);
    dst_p->awb_actv = unpack_right_shift_u8(src_p[11], 7u, 0x80u);
    dst_p->awb_available = unpack_right_shift_u8(src_p[11], 6u, 0x40u);
    dst_p->cdd_available = unpack_right_shift_u8(src_p[11], 5u, 0x20u);
    dst_p->cdd_actv = unpack_right_shift_u8(src_p[11], 4u, 0x10u);
    dst_p->hdc_ctrl = unpack_right_shift_u8(src_p[11], 2u, 0x0cu);
    dst_p->cdp_actv = unpack_right_shift_u8(src_p[12], 7u, 0x80u);
    dst_p->avh_sts = unpack_right_shift_u8(src_p[12], 4u, 0x30u);
    dst_p->avh_err_sts = unpack_right_shift_u8(src_p[12], 2u, 0x0cu);
    dst_p->rolling_counter_esp2 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->check_sum_esp1 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->esp_fail_sts = unpack_right_shift_u8(src_p[17], 7u, 0x80u);
    dst_p->esp_brk_lmp_ctrl = unpack_right_shift_u8(src_p[17], 6u, 0x40u);
    dst_p->esp_func_off_sts = unpack_right_shift_u8(src_p[17], 4u, 0x10u);
    dst_p->btc_actv = unpack_right_shift_u8(src_p[18], 7u, 0x80u);
    dst_p->ptc_actv = unpack_right_shift_u8(src_p[18], 6u, 0x40u);
    dst_p->msr_actv = unpack_right_shift_u8(src_p[18], 5u, 0x20u);
    dst_p->vdc_actv = unpack_right_shift_u8(src_p[18], 4u, 0x10u);
    dst_p->esp_master_cyl_brk_press_vld = unpack_right_shift_u8(src_p[18], 0u, 0x01u);
    dst_p->esp_master_cyl_brk_press = unpack_left_shift_u16(src_p[19], 8u, 0xffu);
    dst_p->esp_master_cyl_brk_press |= unpack_right_shift_u16(src_p[20], 0u, 0xffu);
    dst_p->rolling_counter_esp1 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->check_sum_esp7 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->four_whls_brk_trq = unpack_left_shift_u16(src_p[25], 6u, 0xffu);
    dst_p->four_whls_brk_trq |= unpack_right_shift_u16(src_p[26], 2u, 0xfcu);
    dst_p->esp_meb_brk_avail = unpack_right_shift_u8(src_p[26], 1u, 0x02u);
    dst_p->lgt_ctrlr_sts = unpack_right_shift_u8(src_p[27], 5u, 0xe0u);
    dst_p->lgt_ctrlr_failr = unpack_right_shift_u8(src_p[27], 2u, 0x1cu);
    dst_p->lgt_ctrlr_avail = unpack_right_shift_u8(src_p[31], 5u, 0xe0u);
    dst_p->rolling_counter_esp7 = unpack_right_shift_u8(src_p[31], 0u, 0x0fu);
    dst_p->check_sum_abs3 = unpack_right_shift_u8(src_p[40], 0u, 0xffu);
    dst_p->abs_fail_sts = unpack_right_shift_u8(src_p[41], 7u, 0x80u);
    dst_p->ebd_fail_sts = unpack_right_shift_u8(src_p[41], 6u, 0x40u);
    dst_p->veh_spd_vld = unpack_right_shift_u8(src_p[41], 5u, 0x20u);
    dst_p->veh_spd = unpack_left_shift_u16(src_p[41], 8u, 0x1fu);
    dst_p->veh_spd |= unpack_right_shift_u16(src_p[42], 0u, 0xffu);
    dst_p->ebd_actv = unpack_right_shift_u8(src_p[43], 7u, 0x80u);
    dst_p->abs_actv = unpack_right_shift_u8(src_p[43], 3u, 0x08u);
    dst_p->rolling_counter_abs3 = unpack_right_shift_u8(src_p[47], 0u, 0x0fu);

    return (0);
}

int b30_001_esp_fd2_init(struct b30_001_esp_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_esp_fd2_t));
    msg_p->check_sum_esp2 = 0.0;
    msg_p->veh_standstill = 0.0;
    msg_p->no_brk_force = 0.0;
    msg_p->brk_dsk_ovrheatd = 0.0;
    msg_p->cta_brk_available = 0.0;
    msg_p->esp_diag_actv = 0.0;
    msg_p->aba_actv = 0.0;
    msg_p->ab_aavailable = 0.0;
    msg_p->abp_actv = 0.0;
    msg_p->abp_available = 0.0;
    msg_p->aeb_available = 0.0;
    msg_p->aebba_actv = 0.0;
    msg_p->aebib_actv = 0.0;
    msg_p->awb_actv = 0.0;
    msg_p->awb_available = 0.0;
    msg_p->cdd_available = 0.0;
    msg_p->cdd_actv = 0.0;
    msg_p->hdc_ctrl = 0.0;
    msg_p->cdp_actv = 0.0;
    msg_p->avh_sts = 0.0;
    msg_p->avh_err_sts = 0.0;
    msg_p->rolling_counter_esp2 = 0.0;
    msg_p->check_sum_esp1 = 0.0;
    msg_p->esp_fail_sts = 0.0;
    msg_p->esp_brk_lmp_ctrl = 0.0;
    msg_p->esp_func_off_sts = 0.0;
    msg_p->btc_actv = 0.0;
    msg_p->ptc_actv = 0.0;
    msg_p->msr_actv = 0.0;
    msg_p->vdc_actv = 0.0;
    msg_p->esp_master_cyl_brk_press_vld = 1.0;
    msg_p->esp_master_cyl_brk_press = 0.0;
    msg_p->rolling_counter_esp1 = 0.0;
    msg_p->check_sum_esp7 = 0.0;
    msg_p->four_whls_brk_trq = 0.0;
    msg_p->esp_meb_brk_avail = 0.0;
    msg_p->lgt_ctrlr_sts = 0.0;
    msg_p->lgt_ctrlr_failr = 0.0;
    msg_p->lgt_ctrlr_avail = 0.0;
    msg_p->rolling_counter_esp7 = 0.0;
    msg_p->check_sum_abs3 = 0.0;
    msg_p->abs_fail_sts = 1.0;
    msg_p->ebd_fail_sts = 0.0;
    msg_p->veh_spd_vld = 0.0;
    msg_p->veh_spd = 0.0;
    msg_p->ebd_actv = 0.0;
    msg_p->abs_actv = 0.0;
    msg_p->rolling_counter_abs3 = 0.0;

    return 0;
}

uint8_t b30_001_esp_fd2_check_sum_esp2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_check_sum_esp2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_check_sum_esp2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd2_veh_standstill_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_veh_standstill_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_veh_standstill_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd2_no_brk_force_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_no_brk_force_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_no_brk_force_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_brk_dsk_ovrheatd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_brk_dsk_ovrheatd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_brk_dsk_ovrheatd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_cta_brk_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_cta_brk_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_cta_brk_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_esp_diag_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_esp_diag_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_esp_diag_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_aba_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_aba_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_aba_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_ab_aavailable_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_ab_aavailable_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_ab_aavailable_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_abp_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_abp_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_abp_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_abp_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_abp_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_abp_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_aeb_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_aeb_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_aeb_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_aebba_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_aebba_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_aebba_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_aebib_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_aebib_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_aebib_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_awb_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_awb_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_awb_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_awb_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_awb_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_awb_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_cdd_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_cdd_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_cdd_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_cdd_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_cdd_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_cdd_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_hdc_ctrl_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_hdc_ctrl_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_hdc_ctrl_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd2_cdp_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_cdp_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_cdp_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_avh_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_avh_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_avh_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd2_avh_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_avh_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_avh_err_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd2_rolling_counter_esp2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_rolling_counter_esp2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_rolling_counter_esp2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_esp_fd2_check_sum_esp1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_check_sum_esp1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_check_sum_esp1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd2_esp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_esp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_esp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_esp_brk_lmp_ctrl_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_esp_brk_lmp_ctrl_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_esp_brk_lmp_ctrl_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_esp_func_off_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_esp_func_off_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_esp_func_off_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_btc_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_btc_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_btc_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_ptc_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_ptc_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_ptc_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_msr_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_msr_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_msr_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_vdc_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_vdc_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_vdc_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_esp_master_cyl_brk_press_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_esp_master_cyl_brk_press_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_esp_master_cyl_brk_press_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp_fd2_esp_master_cyl_brk_press_encode(double value)
{
    return (uint16_t)((value - -42.5) / 0.03125);
}

double b30_001_esp_fd2_esp_master_cyl_brk_press_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -42.5);
}

bool b30_001_esp_fd2_esp_master_cyl_brk_press_is_in_range(uint16_t value)
{
    return (value <= 14960u);
}

uint8_t b30_001_esp_fd2_rolling_counter_esp1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_rolling_counter_esp1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_rolling_counter_esp1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_esp_fd2_check_sum_esp7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_check_sum_esp7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_check_sum_esp7_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_esp_fd2_four_whls_brk_trq_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_esp_fd2_four_whls_brk_trq_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_four_whls_brk_trq_is_in_range(uint16_t value)
{
    return (value <= 16383u);
}

uint8_t b30_001_esp_fd2_esp_meb_brk_avail_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_esp_meb_brk_avail_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_esp_meb_brk_avail_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_lgt_ctrlr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_lgt_ctrlr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_lgt_ctrlr_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp_fd2_lgt_ctrlr_failr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_lgt_ctrlr_failr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_lgt_ctrlr_failr_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp_fd2_lgt_ctrlr_avail_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_lgt_ctrlr_avail_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_lgt_ctrlr_avail_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp_fd2_rolling_counter_esp7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_rolling_counter_esp7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_rolling_counter_esp7_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_esp_fd2_check_sum_abs3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_check_sum_abs3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_check_sum_abs3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd2_abs_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_abs_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_abs_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_ebd_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_ebd_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_ebd_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_veh_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_veh_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_veh_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp_fd2_veh_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_esp_fd2_veh_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_esp_fd2_veh_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_esp_fd2_ebd_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_ebd_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_ebd_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_abs_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_abs_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_abs_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd2_rolling_counter_abs3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd2_rolling_counter_abs3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd2_rolling_counter_abs3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_esp_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_esp_fd3_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_abs1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->fl_wheel_drive_direction, 6u, 0xc0u);
    dst_p[1] |= pack_left_shift_u8(src_p->fl_wheel_spd_vld, 5u, 0x20u);
    dst_p[1] |= pack_right_shift_u16(src_p->fl_wheel_spd, 8u, 0x1fu);
    dst_p[2] |= pack_left_shift_u16(src_p->fl_wheel_spd, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->fr_wheel_drive_direction, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->fr_wheel_spd_vld, 5u, 0x20u);
    dst_p[3] |= pack_right_shift_u16(src_p->fr_wheel_spd, 8u, 0x1fu);
    dst_p[4] |= pack_left_shift_u16(src_p->fr_wheel_spd, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->wss_fl_edges_sum, 0u, 0xffu);
    dst_p[6] |= pack_left_shift_u8(src_p->wss_fr_edges_sum, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->wss_fl_edges_sum_vld, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->wss_fr_edges_sum_vld, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_abs1, 0u, 0x0fu);
    dst_p[8] |= pack_left_shift_u8(src_p->check_sum_epb1, 0u, 0xffu);
    dst_p[10] |= pack_left_shift_u8(src_p->epb_swt_posn_vld, 0u, 0x01u);
    dst_p[11] |= pack_left_shift_u8(src_p->epb_swt_posn, 6u, 0xc0u);
    dst_p[11] |= pack_left_shift_u8(src_p->epb_sts, 4u, 0x30u);
    dst_p[11] |= pack_left_shift_u8(src_p->epb_err_sts, 2u, 0x0cu);
    dst_p[14] |= pack_left_shift_u8(src_p->esp_dst_sts, 2u, 0x1cu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_epb1, 0u, 0x0fu);
    dst_p[40] |= pack_left_shift_u8(src_p->check_sum_abs2, 0u, 0xffu);
    dst_p[41] |= pack_left_shift_u8(src_p->rl_wheel_drive_direction, 6u, 0xc0u);
    dst_p[41] |= pack_left_shift_u8(src_p->rl_wheel_spd_vld, 5u, 0x20u);
    dst_p[41] |= pack_right_shift_u16(src_p->rl_wheel_spd, 8u, 0x1fu);
    dst_p[42] |= pack_left_shift_u16(src_p->rl_wheel_spd, 0u, 0xffu);
    dst_p[43] |= pack_left_shift_u8(src_p->rr_wheel_drive_direction, 6u, 0xc0u);
    dst_p[43] |= pack_left_shift_u8(src_p->rr_wheel_spd_vld, 5u, 0x20u);
    dst_p[43] |= pack_right_shift_u16(src_p->rr_wheel_spd, 8u, 0x1fu);
    dst_p[44] |= pack_left_shift_u16(src_p->rr_wheel_spd, 0u, 0xffu);
    dst_p[45] |= pack_left_shift_u8(src_p->wss_rr_edges_sum, 0u, 0xffu);
    dst_p[46] |= pack_left_shift_u8(src_p->wss_rl_edges_sum, 0u, 0xffu);
    dst_p[47] |= pack_left_shift_u8(src_p->wss_rl_edges_sum_vld, 7u, 0x80u);
    dst_p[47] |= pack_left_shift_u8(src_p->wss_rr_edges_sum_vld, 6u, 0x40u);
    dst_p[47] |= pack_left_shift_u8(src_p->rolling_counter_abs2, 0u, 0x0fu);

    return (64);
}

int b30_001_esp_fd3_unpack(
    struct b30_001_esp_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->check_sum_abs1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->fl_wheel_drive_direction = unpack_right_shift_u8(src_p[1], 6u, 0xc0u);
    dst_p->fl_wheel_spd_vld = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->fl_wheel_spd = unpack_left_shift_u16(src_p[1], 8u, 0x1fu);
    dst_p->fl_wheel_spd |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);
    dst_p->fr_wheel_drive_direction = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->fr_wheel_spd_vld = unpack_right_shift_u8(src_p[3], 5u, 0x20u);
    dst_p->fr_wheel_spd = unpack_left_shift_u16(src_p[3], 8u, 0x1fu);
    dst_p->fr_wheel_spd |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->wss_fl_edges_sum = unpack_right_shift_u8(src_p[5], 0u, 0xffu);
    dst_p->wss_fr_edges_sum = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->wss_fl_edges_sum_vld = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->wss_fr_edges_sum_vld = unpack_right_shift_u8(src_p[7], 6u, 0x40u);
    dst_p->rolling_counter_abs1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);
    dst_p->check_sum_epb1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->epb_swt_posn_vld = unpack_right_shift_u8(src_p[10], 0u, 0x01u);
    dst_p->epb_swt_posn = unpack_right_shift_u8(src_p[11], 6u, 0xc0u);
    dst_p->epb_sts = unpack_right_shift_u8(src_p[11], 4u, 0x30u);
    dst_p->epb_err_sts = unpack_right_shift_u8(src_p[11], 2u, 0x0cu);
    dst_p->esp_dst_sts = unpack_right_shift_u8(src_p[14], 2u, 0x1cu);
    dst_p->rolling_counter_epb1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->check_sum_abs2 = unpack_right_shift_u8(src_p[40], 0u, 0xffu);
    dst_p->rl_wheel_drive_direction = unpack_right_shift_u8(src_p[41], 6u, 0xc0u);
    dst_p->rl_wheel_spd_vld = unpack_right_shift_u8(src_p[41], 5u, 0x20u);
    dst_p->rl_wheel_spd = unpack_left_shift_u16(src_p[41], 8u, 0x1fu);
    dst_p->rl_wheel_spd |= unpack_right_shift_u16(src_p[42], 0u, 0xffu);
    dst_p->rr_wheel_drive_direction = unpack_right_shift_u8(src_p[43], 6u, 0xc0u);
    dst_p->rr_wheel_spd_vld = unpack_right_shift_u8(src_p[43], 5u, 0x20u);
    dst_p->rr_wheel_spd = unpack_left_shift_u16(src_p[43], 8u, 0x1fu);
    dst_p->rr_wheel_spd |= unpack_right_shift_u16(src_p[44], 0u, 0xffu);
    dst_p->wss_rr_edges_sum = unpack_right_shift_u8(src_p[45], 0u, 0xffu);
    dst_p->wss_rl_edges_sum = unpack_right_shift_u8(src_p[46], 0u, 0xffu);
    dst_p->wss_rl_edges_sum_vld = unpack_right_shift_u8(src_p[47], 7u, 0x80u);
    dst_p->wss_rr_edges_sum_vld = unpack_right_shift_u8(src_p[47], 6u, 0x40u);
    dst_p->rolling_counter_abs2 = unpack_right_shift_u8(src_p[47], 0u, 0x0fu);

    return (0);
}

int b30_001_esp_fd3_init(struct b30_001_esp_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_esp_fd3_t));
    msg_p->check_sum_abs1 = 0.0;
    msg_p->fl_wheel_drive_direction = 0.0;
    msg_p->fl_wheel_spd_vld = 0.0;
    msg_p->fl_wheel_spd = 0.0;
    msg_p->fr_wheel_drive_direction = 0.0;
    msg_p->fr_wheel_spd_vld = 0.0;
    msg_p->fr_wheel_spd = 0.0;
    msg_p->wss_fl_edges_sum = 0.0;
    msg_p->wss_fr_edges_sum = 0.0;
    msg_p->wss_fl_edges_sum_vld = 1.0;
    msg_p->wss_fr_edges_sum_vld = 1.0;
    msg_p->rolling_counter_abs1 = 0.0;
    msg_p->check_sum_epb1 = 0.0;
    msg_p->epb_swt_posn_vld = 0.0;
    msg_p->epb_swt_posn = 0.0;
    msg_p->epb_sts = 0.0;
    msg_p->epb_err_sts = 0.0;
    msg_p->esp_dst_sts = 0.0;
    msg_p->rolling_counter_epb1 = 0.0;
    msg_p->check_sum_abs2 = 0.0;
    msg_p->rl_wheel_drive_direction = 0.0;
    msg_p->rl_wheel_spd_vld = 0.0;
    msg_p->rl_wheel_spd = 0.0;
    msg_p->rr_wheel_drive_direction = 0.0;
    msg_p->rr_wheel_spd_vld = 0.0;
    msg_p->rr_wheel_spd = 0.0;
    msg_p->wss_rr_edges_sum = 0.0;
    msg_p->wss_rl_edges_sum = 0.0;
    msg_p->wss_rl_edges_sum_vld = 1.0;
    msg_p->wss_rr_edges_sum_vld = 1.0;
    msg_p->rolling_counter_abs2 = 0.0;

    return 0;
}

uint8_t b30_001_esp_fd3_check_sum_abs1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_check_sum_abs1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_check_sum_abs1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_fl_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_fl_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_fl_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_fl_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_fl_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_fl_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp_fd3_fl_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_esp_fd3_fl_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_esp_fd3_fl_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_esp_fd3_fr_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_fr_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_fr_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_fr_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_fr_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_fr_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp_fd3_fr_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_esp_fd3_fr_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_esp_fd3_fr_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_esp_fd3_wss_fl_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_fl_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_fl_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_wss_fr_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_fr_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_fr_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_wss_fl_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_fl_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_fl_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd3_wss_fr_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_fr_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_fr_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd3_rolling_counter_abs1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rolling_counter_abs1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rolling_counter_abs1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_esp_fd3_check_sum_epb1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_check_sum_epb1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_check_sum_epb1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_epb_swt_posn_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_epb_swt_posn_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_epb_swt_posn_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd3_epb_swt_posn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_epb_swt_posn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_epb_swt_posn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_epb_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_epb_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_epb_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_epb_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_epb_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_epb_err_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_esp_dst_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_esp_dst_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_esp_dst_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp_fd3_rolling_counter_epb1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rolling_counter_epb1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rolling_counter_epb1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_esp_fd3_check_sum_abs2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_check_sum_abs2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_check_sum_abs2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_rl_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rl_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rl_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_rl_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rl_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rl_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp_fd3_rl_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_esp_fd3_rl_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_esp_fd3_rl_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_esp_fd3_rr_wheel_drive_direction_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rr_wheel_drive_direction_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rr_wheel_drive_direction_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp_fd3_rr_wheel_spd_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rr_wheel_spd_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rr_wheel_spd_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp_fd3_rr_wheel_spd_encode(double value)
{
    return (uint16_t)(value / 0.05625);
}

double b30_001_esp_fd3_rr_wheel_spd_decode(uint16_t value)
{
    return ((double)value * 0.05625);
}

bool b30_001_esp_fd3_rr_wheel_spd_is_in_range(uint16_t value)
{
    return (value <= 5333u);
}

uint8_t b30_001_esp_fd3_wss_rr_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_rr_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_rr_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_wss_rl_edges_sum_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_rl_edges_sum_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_rl_edges_sum_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp_fd3_wss_rl_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_rl_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_rl_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd3_wss_rr_edges_sum_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_wss_rr_edges_sum_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_wss_rr_edges_sum_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp_fd3_rolling_counter_abs2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp_fd3_rolling_counter_abs2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp_fd3_rolling_counter_abs2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_esp1_pack(
    uint8_t *dst_p,
    const struct b30_001_esp1_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_esp1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->esp_fail_sts, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->esp_brk_lmp_ctrl, 6u, 0x40u);
    dst_p[1] |= pack_left_shift_u8(src_p->esp_func_off_sts, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->btc_actv, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->ptc_actv, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->msr_actv, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->vdc_actv, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->esp_master_cyl_brk_press_vld, 0u, 0x01u);
    dst_p[3] |= pack_right_shift_u16(src_p->esp_master_cyl_brk_press, 8u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->esp_master_cyl_brk_press, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_esp1, 0u, 0x0fu);

    return (16);
}

int b30_001_esp1_unpack(
    struct b30_001_esp1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->check_sum_esp1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->esp_fail_sts = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->esp_brk_lmp_ctrl = unpack_right_shift_u8(src_p[1], 6u, 0x40u);
    dst_p->esp_func_off_sts = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->btc_actv = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->ptc_actv = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->msr_actv = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->vdc_actv = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->esp_master_cyl_brk_press_vld = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->esp_master_cyl_brk_press = unpack_left_shift_u16(src_p[3], 8u, 0xffu);
    dst_p->esp_master_cyl_brk_press |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->rolling_counter_esp1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_esp1_init(struct b30_001_esp1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_esp1_t));
    msg_p->check_sum_esp1 = 0.0;
    msg_p->esp_fail_sts = 0.0;
    msg_p->esp_brk_lmp_ctrl = 0.0;
    msg_p->esp_func_off_sts = 0.0;
    msg_p->btc_actv = 0.0;
    msg_p->ptc_actv = 0.0;
    msg_p->msr_actv = 0.0;
    msg_p->vdc_actv = 0.0;
    msg_p->esp_master_cyl_brk_press_vld = 1.0;
    msg_p->esp_master_cyl_brk_press = 0.0;
    msg_p->rolling_counter_esp1 = 0.0;

    return 0;
}

uint8_t b30_001_esp1_check_sum_esp1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_check_sum_esp1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_check_sum_esp1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp1_esp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_esp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_esp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_esp_brk_lmp_ctrl_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_esp_brk_lmp_ctrl_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_esp_brk_lmp_ctrl_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_esp_func_off_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_esp_func_off_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_esp_func_off_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_btc_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_btc_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_btc_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_ptc_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_ptc_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_ptc_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_msr_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_msr_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_msr_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_vdc_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_vdc_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_vdc_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp1_esp_master_cyl_brk_press_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_esp_master_cyl_brk_press_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_esp_master_cyl_brk_press_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_esp1_esp_master_cyl_brk_press_encode(double value)
{
    return (uint16_t)((value - -42.5) / 0.03125);
}

double b30_001_esp1_esp_master_cyl_brk_press_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -42.5);
}

bool b30_001_esp1_esp_master_cyl_brk_press_is_in_range(uint16_t value)
{
    return (value <= 14960u);
}

uint8_t b30_001_esp1_rolling_counter_esp1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp1_rolling_counter_esp1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp1_rolling_counter_esp1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_esp2_pack(
    uint8_t *dst_p,
    const struct b30_001_esp2_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_esp2, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->veh_standstill, 5u, 0x60u);
    dst_p[1] |= pack_left_shift_u8(src_p->no_brk_force, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->brk_dsk_ovrheatd, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->cta_brk_available, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->esp_diag_actv, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->aba_actv, 7u, 0x80u);
    dst_p[2] |= pack_left_shift_u8(src_p->ab_aavailable, 6u, 0x40u);
    dst_p[2] |= pack_left_shift_u8(src_p->abp_actv, 5u, 0x20u);
    dst_p[2] |= pack_left_shift_u8(src_p->abp_available, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->aeb_available, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->aebba_actv, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->aebib_actv, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->awb_actv, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->awb_available, 6u, 0x40u);
    dst_p[3] |= pack_left_shift_u8(src_p->cdd_available, 5u, 0x20u);
    dst_p[3] |= pack_left_shift_u8(src_p->cdd_actv, 4u, 0x10u);
    dst_p[3] |= pack_left_shift_u8(src_p->hdc_ctrl, 2u, 0x0cu);
    dst_p[4] |= pack_left_shift_u8(src_p->cdp_actv, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->avh_sts, 4u, 0x30u);
    dst_p[4] |= pack_left_shift_u8(src_p->avh_err_sts, 2u, 0x0cu);
    dst_p[4] |= pack_right_shift_u8(src_p->driving_mod_req_esp, 4u, 0x01u);
    dst_p[5] |= pack_left_shift_u8(src_p->driving_mod_req_esp, 4u, 0xf0u);
    dst_p[6] |= pack_left_shift_u8(src_p->driving_mod_dis, 3u, 0xf8u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_esp2, 0u, 0x0fu);

    return (16);
}

int b30_001_esp2_unpack(
    struct b30_001_esp2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->check_sum_esp2 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->veh_standstill = unpack_right_shift_u8(src_p[1], 5u, 0x60u);
    dst_p->no_brk_force = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->brk_dsk_ovrheatd = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->cta_brk_available = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->esp_diag_actv = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->aba_actv = unpack_right_shift_u8(src_p[2], 7u, 0x80u);
    dst_p->ab_aavailable = unpack_right_shift_u8(src_p[2], 6u, 0x40u);
    dst_p->abp_actv = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->abp_available = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->aeb_available = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->aebba_actv = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->aebib_actv = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->awb_actv = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->awb_available = unpack_right_shift_u8(src_p[3], 6u, 0x40u);
    dst_p->cdd_available = unpack_right_shift_u8(src_p[3], 5u, 0x20u);
    dst_p->cdd_actv = unpack_right_shift_u8(src_p[3], 4u, 0x10u);
    dst_p->hdc_ctrl = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->cdp_actv = unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->avh_sts = unpack_right_shift_u8(src_p[4], 4u, 0x30u);
    dst_p->avh_err_sts = unpack_right_shift_u8(src_p[4], 2u, 0x0cu);
    dst_p->driving_mod_req_esp = unpack_left_shift_u8(src_p[4], 4u, 0x01u);
    dst_p->driving_mod_req_esp |= unpack_right_shift_u8(src_p[5], 4u, 0xf0u);
    dst_p->driving_mod_dis = unpack_right_shift_u8(src_p[6], 3u, 0xf8u);
    dst_p->rolling_counter_esp2 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_esp2_init(struct b30_001_esp2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_esp2_t));
    msg_p->check_sum_esp2 = 0.0;
    msg_p->veh_standstill = 0.0;
    msg_p->no_brk_force = 0.0;
    msg_p->brk_dsk_ovrheatd = 0.0;
    msg_p->cta_brk_available = 0.0;
    msg_p->esp_diag_actv = 0.0;
    msg_p->aba_actv = 0.0;
    msg_p->ab_aavailable = 0.0;
    msg_p->abp_actv = 0.0;
    msg_p->abp_available = 0.0;
    msg_p->aeb_available = 0.0;
    msg_p->aebba_actv = 0.0;
    msg_p->aebib_actv = 0.0;
    msg_p->awb_actv = 0.0;
    msg_p->awb_available = 0.0;
    msg_p->cdd_available = 0.0;
    msg_p->cdd_actv = 0.0;
    msg_p->hdc_ctrl = 0.0;
    msg_p->cdp_actv = 0.0;
    msg_p->avh_sts = 0.0;
    msg_p->avh_err_sts = 0.0;
    msg_p->driving_mod_req_esp = 1.0;
    msg_p->driving_mod_dis = 0.0;
    msg_p->rolling_counter_esp2 = 0.0;

    return 0;
}

uint8_t b30_001_esp2_check_sum_esp2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_check_sum_esp2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_check_sum_esp2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_esp2_veh_standstill_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_veh_standstill_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_veh_standstill_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp2_no_brk_force_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_no_brk_force_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_no_brk_force_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_brk_dsk_ovrheatd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_brk_dsk_ovrheatd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_brk_dsk_ovrheatd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_cta_brk_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_cta_brk_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_cta_brk_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_esp_diag_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_esp_diag_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_esp_diag_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_aba_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_aba_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_aba_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_ab_aavailable_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_ab_aavailable_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_ab_aavailable_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_abp_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_abp_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_abp_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_abp_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_abp_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_abp_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_aeb_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_aeb_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_aeb_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_aebba_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_aebba_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_aebba_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_aebib_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_aebib_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_aebib_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_awb_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_awb_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_awb_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_awb_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_awb_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_awb_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_cdd_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_cdd_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_cdd_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_cdd_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_cdd_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_cdd_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_hdc_ctrl_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_hdc_ctrl_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_hdc_ctrl_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp2_cdp_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_cdp_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_cdp_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp2_avh_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_avh_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_avh_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp2_avh_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_avh_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_avh_err_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_esp2_driving_mod_req_esp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_driving_mod_req_esp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_driving_mod_req_esp_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_esp2_driving_mod_dis_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_driving_mod_dis_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_driving_mod_dis_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_esp2_rolling_counter_esp2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp2_rolling_counter_esp2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp2_rolling_counter_esp2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_esp7_pack(
    uint8_t *dst_p,
    const struct b30_001_esp7_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_esp7, 0u, 0xffu);
    dst_p[1] |= pack_right_shift_u16(src_p->four_whls_brk_trq, 6u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->four_whls_brk_trq, 2u, 0xfcu);
    dst_p[2] |= pack_left_shift_u8(src_p->esp_meb_brk_avail, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->lgt_ctrlr_sts, 5u, 0xe0u);
    dst_p[3] |= pack_left_shift_u8(src_p->lgt_ctrlr_failr, 2u, 0x1cu);
    dst_p[7] |= pack_left_shift_u8(src_p->lgt_ctrlr_avail, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_esp7, 0u, 0x0fu);

    return (8);
}

int b30_001_esp7_unpack(
    struct b30_001_esp7_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_esp7 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->four_whls_brk_trq = unpack_left_shift_u16(src_p[1], 6u, 0xffu);
    dst_p->four_whls_brk_trq |= unpack_right_shift_u16(src_p[2], 2u, 0xfcu);
    dst_p->esp_meb_brk_avail = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->lgt_ctrlr_sts = unpack_right_shift_u8(src_p[3], 5u, 0xe0u);
    dst_p->lgt_ctrlr_failr = unpack_right_shift_u8(src_p[3], 2u, 0x1cu);
    dst_p->lgt_ctrlr_avail = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->rolling_counter_esp7 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_esp7_init(struct b30_001_esp7_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_esp7_t));
    msg_p->check_sum_esp7 = 0.0;
    msg_p->four_whls_brk_trq = 0.0;
    msg_p->esp_meb_brk_avail = 0.0;
    msg_p->lgt_ctrlr_sts = 0.0;
    msg_p->lgt_ctrlr_failr = 0.0;
    msg_p->lgt_ctrlr_avail = 0.0;
    msg_p->rolling_counter_esp7 = 0.0;

    return 0;
}

uint8_t b30_001_esp7_check_sum_esp7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp7_check_sum_esp7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp7_check_sum_esp7_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_esp7_four_whls_brk_trq_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_esp7_four_whls_brk_trq_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_esp7_four_whls_brk_trq_is_in_range(uint16_t value)
{
    return (value <= 16383u);
}

uint8_t b30_001_esp7_esp_meb_brk_avail_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp7_esp_meb_brk_avail_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp7_esp_meb_brk_avail_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_esp7_lgt_ctrlr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp7_lgt_ctrlr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp7_lgt_ctrlr_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp7_lgt_ctrlr_failr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp7_lgt_ctrlr_failr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp7_lgt_ctrlr_failr_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp7_lgt_ctrlr_avail_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp7_lgt_ctrlr_avail_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp7_lgt_ctrlr_avail_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_esp7_rolling_counter_esp7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp7_rolling_counter_esp7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp7_rolling_counter_esp7_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_esp8_pack(
    uint8_t *dst_p,
    const struct b30_001_esp8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[3] |= pack_left_shift_u8(src_p->cco_active, 6u, 0xc0u);

    return (8);
}

int b30_001_esp8_unpack(
    struct b30_001_esp8_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->cco_active = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);

    return (0);
}

int b30_001_esp8_init(struct b30_001_esp8_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_esp8_t));
    msg_p->cco_active = 0.0;

    return 0;
}

uint8_t b30_001_esp8_cco_active_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_esp8_cco_active_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_esp8_cco_active_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

int b30_001_f_p_box1_pack(
    uint8_t *dst_p,
    const struct b30_001_f_p_box1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->hi_beam_sts_f_pbox, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->low_beam_sts_f_pbox, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->f_fog_lmp_sts_f_pbox, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->hood_sts_f_pbox, 5u, 0x20u);
    dst_p[4] |= pack_left_shift_u8(src_p->l_head_lmp_fail_sts, 3u, 0x08u);
    dst_p[4] |= pack_left_shift_u8(src_p->r_head_lmp_fail_sts, 2u, 0x04u);

    return (8);
}

int b30_001_f_p_box1_unpack(
    struct b30_001_f_p_box1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->hi_beam_sts_f_pbox = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->low_beam_sts_f_pbox = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->f_fog_lmp_sts_f_pbox = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->hood_sts_f_pbox = unpack_right_shift_u8(src_p[2], 5u, 0x20u);
    dst_p->l_head_lmp_fail_sts = unpack_right_shift_u8(src_p[4], 3u, 0x08u);
    dst_p->r_head_lmp_fail_sts = unpack_right_shift_u8(src_p[4], 2u, 0x04u);

    return (0);
}

int b30_001_f_p_box1_init(struct b30_001_f_p_box1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_f_p_box1_t));
    msg_p->hi_beam_sts_f_pbox = 0.0;
    msg_p->low_beam_sts_f_pbox = 0.0;
    msg_p->f_fog_lmp_sts_f_pbox = 0.0;
    msg_p->hood_sts_f_pbox = 0.0;
    msg_p->l_head_lmp_fail_sts = 0.0;
    msg_p->r_head_lmp_fail_sts = 0.0;

    return 0;
}

uint8_t b30_001_f_p_box1_hi_beam_sts_f_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_f_p_box1_hi_beam_sts_f_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_f_p_box1_hi_beam_sts_f_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_f_p_box1_low_beam_sts_f_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_f_p_box1_low_beam_sts_f_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_f_p_box1_low_beam_sts_f_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_f_p_box1_f_fog_lmp_sts_f_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_f_p_box1_f_fog_lmp_sts_f_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_f_p_box1_f_fog_lmp_sts_f_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_f_p_box1_hood_sts_f_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_f_p_box1_hood_sts_f_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_f_p_box1_hood_sts_f_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_f_p_box1_l_head_lmp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_f_p_box1_l_head_lmp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_f_p_box1_l_head_lmp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_f_p_box1_r_head_lmp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_f_p_box1_r_head_lmp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_f_p_box1_r_head_lmp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hap_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_hap_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_aps1, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->aps_sys_sound_indcn, 5u, 0xe0u);
    dst_p[9] |= pack_left_shift_u8(src_p->aps_slot_disp, 2u, 0x1cu);
    dst_p[9] |= pack_left_shift_u8(src_p->aps_req_eps_tgt_ang_valid, 1u, 0x02u);
    dst_p[9] |= pack_left_shift_u8(src_p->aps_req_ctrl_eps, 0u, 0x01u);
    dst_p[10] |= pack_right_shift_u16(src_p->aps_req_eps_tgt_ang, 7u, 0xffu);
    dst_p[11] |= pack_left_shift_u16(src_p->aps_req_eps_tgt_ang, 1u, 0xfeu);
    dst_p[12] |= pack_left_shift_u8(src_p->aps_text_disp, 0u, 0xffu);
    dst_p[13] |= pack_left_shift_u8(src_p->aps_proc_bar, 1u, 0xfeu);
    dst_p[13] |= pack_left_shift_u8(src_p->aps_swt_sts, 0u, 0x01u);
    dst_p[14] |= pack_left_shift_u8(src_p->aps_prkg_typ, 6u, 0xc0u);
    dst_p[14] |= pack_left_shift_u8(src_p->aps_prkg_mod, 4u, 0x30u);
    dst_p[14] |= pack_left_shift_u8(src_p->turn_lights_cmd, 2u, 0x0cu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_aps1, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_aps4, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->aps_brk_fctn_mod, 5u, 0xe0u);
    dst_p[17] |= pack_left_shift_u8(src_p->aps_esp_tgt_gear_req, 2u, 0x1cu);
    dst_p[17] |= pack_left_shift_u8(src_p->aps_brk_category, 0u, 0x03u);
    dst_p[18] |= pack_left_shift_u8(src_p->aps_brk_mod_sts, 5u, 0xe0u);
    dst_p[18] |= pack_left_shift_u8(src_p->meb_err_sts, 4u, 0x10u);
    dst_p[18] |= pack_left_shift_u8(src_p->meb_brkg_req, 3u, 0x08u);
    dst_p[18] |= pack_left_shift_u8(src_p->aps_work_sts, 0u, 0x07u);
    dst_p[19] |= pack_left_shift_u8(src_p->aps_esp_spd_limn, 0u, 0xffu);
    dst_p[20] |= pack_right_shift_u16(src_p->aps_esp_brk_distance, 4u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->aps_esp_brk_distance, 4u, 0xf0u);
    dst_p[21] |= pack_left_shift_u8(src_p->meb_avh_req, 0u, 0x01u);
    dst_p[22] |= pack_left_shift_u8(src_p->meb_brkg_req_value, 0u, 0xffu);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_aps4, 0u, 0x0fu);
    dst_p[32] |= pack_left_shift_u8(src_p->checksum_hap1, 0u, 0xffu);
    dst_p[33] |= pack_left_shift_u8(src_p->aps_pas_swt_req, 6u, 0xc0u);
    dst_p[33] |= pack_left_shift_u8(src_p->hap_prkg_mod_curr_sts, 2u, 0x3cu);
    dst_p[33] |= pack_left_shift_u8(src_p->p2_p_pah_del_sts, 0u, 0x03u);
    dst_p[34] |= pack_left_shift_u8(src_p->hap_swt_disp_ctrl_cmd, 5u, 0xe0u);
    dst_p[34] |= pack_left_shift_u8(src_p->p2_p_self_det_err_code, 1u, 0x1eu);
    dst_p[34] |= pack_left_shift_u8(src_p->p2_p_pah1_avail, 0u, 0x01u);
    dst_p[35] |= pack_left_shift_u8(src_p->p2_p_self_det_sts, 6u, 0xc0u);
    dst_p[35] |= pack_left_shift_u8(src_p->p2_p_pah2_avail, 5u, 0x20u);
    dst_p[35] |= pack_left_shift_u8(src_p->rmt_prkg_req, 4u, 0x10u);
    dst_p[35] |= pack_left_shift_u8(src_p->l_para_prkg_out_vald, 3u, 0x08u);
    dst_p[35] |= pack_left_shift_u8(src_p->r_para_prkg_out_vald, 2u, 0x04u);
    dst_p[35] |= pack_left_shift_u8(src_p->head_vert_prkg_out_vald, 1u, 0x02u);
    dst_p[35] |= pack_left_shift_u8(src_p->tail_vert_prkg_out_vald, 0u, 0x01u);
    dst_p[36] |= pack_left_shift_u8(src_p->aps_movg_dirc, 6u, 0xc0u);
    dst_p[39] |= pack_left_shift_u8(src_p->rolling_counter_hap1, 0u, 0x0fu);

    return (64);
}

int b30_001_hap_fd1_unpack(
    struct b30_001_hap_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_aps1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->aps_sys_sound_indcn = unpack_right_shift_u8(src_p[9], 5u, 0xe0u);
    dst_p->aps_slot_disp = unpack_right_shift_u8(src_p[9], 2u, 0x1cu);
    dst_p->aps_req_eps_tgt_ang_valid = unpack_right_shift_u8(src_p[9], 1u, 0x02u);
    dst_p->aps_req_ctrl_eps = unpack_right_shift_u8(src_p[9], 0u, 0x01u);
    dst_p->aps_req_eps_tgt_ang = unpack_left_shift_u16(src_p[10], 7u, 0xffu);
    dst_p->aps_req_eps_tgt_ang |= unpack_right_shift_u16(src_p[11], 1u, 0xfeu);
    dst_p->aps_text_disp = unpack_right_shift_u8(src_p[12], 0u, 0xffu);
    dst_p->aps_proc_bar = unpack_right_shift_u8(src_p[13], 1u, 0xfeu);
    dst_p->aps_swt_sts = unpack_right_shift_u8(src_p[13], 0u, 0x01u);
    dst_p->aps_prkg_typ = unpack_right_shift_u8(src_p[14], 6u, 0xc0u);
    dst_p->aps_prkg_mod = unpack_right_shift_u8(src_p[14], 4u, 0x30u);
    dst_p->turn_lights_cmd = unpack_right_shift_u8(src_p[14], 2u, 0x0cu);
    dst_p->rolling_counter_aps1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_aps4 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->aps_brk_fctn_mod = unpack_right_shift_u8(src_p[17], 5u, 0xe0u);
    dst_p->aps_esp_tgt_gear_req = unpack_right_shift_u8(src_p[17], 2u, 0x1cu);
    dst_p->aps_brk_category = unpack_right_shift_u8(src_p[17], 0u, 0x03u);
    dst_p->aps_brk_mod_sts = unpack_right_shift_u8(src_p[18], 5u, 0xe0u);
    dst_p->meb_err_sts = unpack_right_shift_u8(src_p[18], 4u, 0x10u);
    dst_p->meb_brkg_req = unpack_right_shift_u8(src_p[18], 3u, 0x08u);
    dst_p->aps_work_sts = unpack_right_shift_u8(src_p[18], 0u, 0x07u);
    dst_p->aps_esp_spd_limn = unpack_right_shift_u8(src_p[19], 0u, 0xffu);
    dst_p->aps_esp_brk_distance = unpack_left_shift_u16(src_p[20], 4u, 0xffu);
    dst_p->aps_esp_brk_distance |= unpack_right_shift_u16(src_p[21], 4u, 0xf0u);
    dst_p->meb_avh_req = unpack_right_shift_u8(src_p[21], 0u, 0x01u);
    dst_p->meb_brkg_req_value = unpack_right_shift_u8(src_p[22], 0u, 0xffu);
    dst_p->rolling_counter_aps4 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->checksum_hap1 = unpack_right_shift_u8(src_p[32], 0u, 0xffu);
    dst_p->aps_pas_swt_req = unpack_right_shift_u8(src_p[33], 6u, 0xc0u);
    dst_p->hap_prkg_mod_curr_sts = unpack_right_shift_u8(src_p[33], 2u, 0x3cu);
    dst_p->p2_p_pah_del_sts = unpack_right_shift_u8(src_p[33], 0u, 0x03u);
    dst_p->hap_swt_disp_ctrl_cmd = unpack_right_shift_u8(src_p[34], 5u, 0xe0u);
    dst_p->p2_p_self_det_err_code = unpack_right_shift_u8(src_p[34], 1u, 0x1eu);
    dst_p->p2_p_pah1_avail = unpack_right_shift_u8(src_p[34], 0u, 0x01u);
    dst_p->p2_p_self_det_sts = unpack_right_shift_u8(src_p[35], 6u, 0xc0u);
    dst_p->p2_p_pah2_avail = unpack_right_shift_u8(src_p[35], 5u, 0x20u);
    dst_p->rmt_prkg_req = unpack_right_shift_u8(src_p[35], 4u, 0x10u);
    dst_p->l_para_prkg_out_vald = unpack_right_shift_u8(src_p[35], 3u, 0x08u);
    dst_p->r_para_prkg_out_vald = unpack_right_shift_u8(src_p[35], 2u, 0x04u);
    dst_p->head_vert_prkg_out_vald = unpack_right_shift_u8(src_p[35], 1u, 0x02u);
    dst_p->tail_vert_prkg_out_vald = unpack_right_shift_u8(src_p[35], 0u, 0x01u);
    dst_p->aps_movg_dirc = unpack_right_shift_u8(src_p[36], 6u, 0xc0u);
    dst_p->rolling_counter_hap1 = unpack_right_shift_u8(src_p[39], 0u, 0x0fu);

    return (0);
}

int b30_001_hap_fd1_init(struct b30_001_hap_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hap_fd1_t));
    msg_p->checksum_aps1 = 0.0;
    msg_p->aps_sys_sound_indcn = 0.0;
    msg_p->aps_slot_disp = 0.0;
    msg_p->aps_req_eps_tgt_ang_valid = 0.0;
    msg_p->aps_req_ctrl_eps = 0.0;
    msg_p->aps_req_eps_tgt_ang = 0.0;
    msg_p->aps_text_disp = 0.0;
    msg_p->aps_proc_bar = 127.0;
    msg_p->aps_swt_sts = 0.0;
    msg_p->aps_prkg_typ = 0.0;
    msg_p->aps_prkg_mod = 0.0;
    msg_p->turn_lights_cmd = 0.0;
    msg_p->rolling_counter_aps1 = 0.0;
    msg_p->checksum_aps4 = 0.0;
    msg_p->aps_brk_fctn_mod = 0.0;
    msg_p->aps_esp_tgt_gear_req = 0.0;
    msg_p->aps_brk_category = 0.0;
    msg_p->aps_brk_mod_sts = 0.0;
    msg_p->meb_err_sts = 0.0;
    msg_p->meb_brkg_req = 0.0;
    msg_p->aps_work_sts = 0.0;
    msg_p->aps_esp_spd_limn = 0.0;
    msg_p->aps_esp_brk_distance = 0.0;
    msg_p->meb_avh_req = 0.0;
    msg_p->rolling_counter_aps4 = 0.0;
    msg_p->checksum_hap1 = 0.0;
    msg_p->aps_pas_swt_req = 0.0;
    msg_p->hap_prkg_mod_curr_sts = 0.0;
    msg_p->p2_p_pah_del_sts = 0.0;
    msg_p->hap_swt_disp_ctrl_cmd = 0.0;
    msg_p->p2_p_self_det_err_code = 0.0;
    msg_p->p2_p_pah1_avail = 0.0;
    msg_p->p2_p_self_det_sts = 0.0;
    msg_p->p2_p_pah2_avail = 0.0;
    msg_p->rmt_prkg_req = 0.0;
    msg_p->l_para_prkg_out_vald = 0.0;
    msg_p->r_para_prkg_out_vald = 0.0;
    msg_p->head_vert_prkg_out_vald = 0.0;
    msg_p->tail_vert_prkg_out_vald = 0.0;
    msg_p->aps_movg_dirc = 0.0;
    msg_p->rolling_counter_hap1 = 0.0;

    return 0;
}

uint8_t b30_001_hap_fd1_checksum_aps1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_checksum_aps1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_checksum_aps1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hap_fd1_aps_sys_sound_indcn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_sys_sound_indcn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_sys_sound_indcn_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_aps_slot_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_slot_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_slot_disp_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_aps_req_eps_tgt_ang_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_req_eps_tgt_ang_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_req_eps_tgt_ang_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_aps_req_ctrl_eps_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_req_ctrl_eps_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_req_ctrl_eps_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_hap_fd1_aps_req_eps_tgt_ang_encode(double value)
{
    return (uint16_t)(value / 0.1);
}

double b30_001_hap_fd1_aps_req_eps_tgt_ang_decode(uint16_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd1_aps_req_eps_tgt_ang_is_in_range(uint16_t value)
{
    return (value <= 16383u);
}

uint8_t b30_001_hap_fd1_aps_text_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_text_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_text_disp_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hap_fd1_aps_proc_bar_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_proc_bar_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_proc_bar_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_hap_fd1_aps_swt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_swt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_swt_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_aps_prkg_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_prkg_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_prkg_typ_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_aps_prkg_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_prkg_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_prkg_mod_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_turn_lights_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_turn_lights_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_turn_lights_cmd_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_rolling_counter_aps1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_rolling_counter_aps1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_rolling_counter_aps1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd1_checksum_aps4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_checksum_aps4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_checksum_aps4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hap_fd1_aps_brk_fctn_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_brk_fctn_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_brk_fctn_mod_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_aps_esp_tgt_gear_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_esp_tgt_gear_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_esp_tgt_gear_req_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_aps_brk_category_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_brk_category_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_brk_category_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_aps_brk_mod_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_brk_mod_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_brk_mod_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_meb_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_meb_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_meb_err_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_meb_brkg_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_meb_brkg_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_meb_brkg_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_aps_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_work_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_aps_esp_spd_limn_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd1_aps_esp_spd_limn_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd1_aps_esp_spd_limn_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_hap_fd1_aps_esp_brk_distance_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hap_fd1_aps_esp_brk_distance_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_esp_brk_distance_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint8_t b30_001_hap_fd1_meb_avh_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_meb_avh_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_meb_avh_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_meb_brkg_req_value_encode(double value)
{
    return (uint8_t)((value - -10.0) / 0.05);
}

double b30_001_hap_fd1_meb_brkg_req_value_decode(uint8_t value)
{
    return (((double)value * 0.05) + -10.0);
}

bool b30_001_hap_fd1_meb_brkg_req_value_is_in_range(uint8_t value)
{
    return (value <= 200u);
}

uint8_t b30_001_hap_fd1_rolling_counter_aps4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_rolling_counter_aps4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_rolling_counter_aps4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd1_checksum_hap1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_checksum_hap1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_checksum_hap1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hap_fd1_aps_pas_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_pas_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_pas_swt_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_hap_prkg_mod_curr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_hap_prkg_mod_curr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_hap_prkg_mod_curr_sts_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd1_p2_p_pah_del_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_p2_p_pah_del_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_p2_p_pah_del_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_hap_swt_disp_ctrl_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_hap_swt_disp_ctrl_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_hap_swt_disp_ctrl_cmd_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd1_p2_p_self_det_err_code_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_p2_p_self_det_err_code_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_p2_p_self_det_err_code_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd1_p2_p_pah1_avail_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_p2_p_pah1_avail_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_p2_p_pah1_avail_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_p2_p_self_det_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_p2_p_self_det_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_p2_p_self_det_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_p2_p_pah2_avail_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_p2_p_pah2_avail_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_p2_p_pah2_avail_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_rmt_prkg_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_rmt_prkg_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_rmt_prkg_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_l_para_prkg_out_vald_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_l_para_prkg_out_vald_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_l_para_prkg_out_vald_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_r_para_prkg_out_vald_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_r_para_prkg_out_vald_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_r_para_prkg_out_vald_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_head_vert_prkg_out_vald_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_head_vert_prkg_out_vald_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_head_vert_prkg_out_vald_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_tail_vert_prkg_out_vald_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_tail_vert_prkg_out_vald_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_tail_vert_prkg_out_vald_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd1_aps_movg_dirc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_aps_movg_dirc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_aps_movg_dirc_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd1_rolling_counter_hap1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd1_rolling_counter_hap1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd1_rolling_counter_hap1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_hap_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_hap_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[9] |= pack_left_shift_u8(src_p->avm_curr_sts, 6u, 0xc0u);
    dst_p[9] |= pack_left_shift_u8(src_p->sig_view_indcn, 0u, 0x3fu);
    dst_p[10] |= pack_left_shift_u8(src_p->mod_work_sts, 7u, 0x80u);
    dst_p[10] |= pack_left_shift_u8(src_p->mod_alarm_sts, 6u, 0x40u);
    dst_p[10] |= pack_left_shift_u8(src_p->car_mdl_disp_sts, 5u, 0x20u);
    dst_p[10] |= pack_left_shift_u8(src_p->auto_view_chg_func_sts, 4u, 0x10u);
    dst_p[10] |= pack_left_shift_u8(src_p->auto_avm_swt_set_sts, 3u, 0x08u);
    dst_p[10] |= pack_left_shift_u8(src_p->hap_hmi_index, 0u, 0x07u);
    dst_p[11] |= pack_left_shift_u8(src_p->guid_ovl_sts, 6u, 0xc0u);
    dst_p[11] |= pack_left_shift_u8(src_p->radar_disp_sts, 4u, 0x30u);
    dst_p[11] |= pack_left_shift_u8(src_p->mdl_colr_sts, 0u, 0x0fu);
    dst_p[12] |= pack_left_shift_u8(src_p->car_mdl_trsprcy_sts, 6u, 0xc0u);
    dst_p[12] |= pack_left_shift_u8(src_p->lane_cal_sts, 4u, 0x30u);
    dst_p[12] |= pack_left_shift_u8(src_p->lane_cal_flt_sts, 1u, 0x0eu);
    dst_p[12] |= pack_left_shift_u8(src_p->curr_cal_result_sts, 0u, 0x01u);
    dst_p[13] |= pack_left_shift_u8(src_p->ri_cam_inp_fail_sts, 7u, 0x80u);
    dst_p[13] |= pack_left_shift_u8(src_p->le_cam_inp_fail_sts, 6u, 0x40u);
    dst_p[13] |= pack_left_shift_u8(src_p->rear_cam_inp_fail_sts, 5u, 0x20u);
    dst_p[13] |= pack_left_shift_u8(src_p->frnt_cam_inp_fail_sts, 4u, 0x10u);
    dst_p[13] |= pack_left_shift_u8(src_p->eol_not_cmpltd, 3u, 0x08u);
    dst_p[13] |= pack_left_shift_u8(src_p->ovl_op_fail_sts, 1u, 0x02u);
    dst_p[13] |= pack_right_shift_u16(src_p->avm_3_d_ang_sts, 8u, 0x01u);
    dst_p[14] |= pack_left_shift_u16(src_p->avm_3_d_ang_sts, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->hap_disp_cmd, 7u, 0x80u);
    dst_p[15] |= pack_left_shift_u8(src_p->dvr_work_sts, 5u, 0x60u);

    return (64);
}

int b30_001_hap_fd2_unpack(
    struct b30_001_hap_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->avm_curr_sts = unpack_right_shift_u8(src_p[9], 6u, 0xc0u);
    dst_p->sig_view_indcn = unpack_right_shift_u8(src_p[9], 0u, 0x3fu);
    dst_p->mod_work_sts = unpack_right_shift_u8(src_p[10], 7u, 0x80u);
    dst_p->mod_alarm_sts = unpack_right_shift_u8(src_p[10], 6u, 0x40u);
    dst_p->car_mdl_disp_sts = unpack_right_shift_u8(src_p[10], 5u, 0x20u);
    dst_p->auto_view_chg_func_sts = unpack_right_shift_u8(src_p[10], 4u, 0x10u);
    dst_p->auto_avm_swt_set_sts = unpack_right_shift_u8(src_p[10], 3u, 0x08u);
    dst_p->hap_hmi_index = unpack_right_shift_u8(src_p[10], 0u, 0x07u);
    dst_p->guid_ovl_sts = unpack_right_shift_u8(src_p[11], 6u, 0xc0u);
    dst_p->radar_disp_sts = unpack_right_shift_u8(src_p[11], 4u, 0x30u);
    dst_p->mdl_colr_sts = unpack_right_shift_u8(src_p[11], 0u, 0x0fu);
    dst_p->car_mdl_trsprcy_sts = unpack_right_shift_u8(src_p[12], 6u, 0xc0u);
    dst_p->lane_cal_sts = unpack_right_shift_u8(src_p[12], 4u, 0x30u);
    dst_p->lane_cal_flt_sts = unpack_right_shift_u8(src_p[12], 1u, 0x0eu);
    dst_p->curr_cal_result_sts = unpack_right_shift_u8(src_p[12], 0u, 0x01u);
    dst_p->ri_cam_inp_fail_sts = unpack_right_shift_u8(src_p[13], 7u, 0x80u);
    dst_p->le_cam_inp_fail_sts = unpack_right_shift_u8(src_p[13], 6u, 0x40u);
    dst_p->rear_cam_inp_fail_sts = unpack_right_shift_u8(src_p[13], 5u, 0x20u);
    dst_p->frnt_cam_inp_fail_sts = unpack_right_shift_u8(src_p[13], 4u, 0x10u);
    dst_p->eol_not_cmpltd = unpack_right_shift_u8(src_p[13], 3u, 0x08u);
    dst_p->ovl_op_fail_sts = unpack_right_shift_u8(src_p[13], 1u, 0x02u);
    dst_p->avm_3_d_ang_sts = unpack_left_shift_u16(src_p[13], 8u, 0x01u);
    dst_p->avm_3_d_ang_sts |= unpack_right_shift_u16(src_p[14], 0u, 0xffu);
    dst_p->hap_disp_cmd = unpack_right_shift_u8(src_p[15], 7u, 0x80u);
    dst_p->dvr_work_sts = unpack_right_shift_u8(src_p[15], 5u, 0x60u);

    return (0);
}

int b30_001_hap_fd2_init(struct b30_001_hap_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hap_fd2_t));
    msg_p->avm_curr_sts = 0.0;
    msg_p->sig_view_indcn = 0.0;
    msg_p->mod_work_sts = 0.0;
    msg_p->mod_alarm_sts = 0.0;
    msg_p->car_mdl_disp_sts = 0.0;
    msg_p->auto_view_chg_func_sts = 0.0;
    msg_p->auto_avm_swt_set_sts = 0.0;
    msg_p->hap_hmi_index = 0.0;
    msg_p->guid_ovl_sts = 0.0;
    msg_p->radar_disp_sts = 0.0;
    msg_p->mdl_colr_sts = 0.0;
    msg_p->car_mdl_trsprcy_sts = 0.0;
    msg_p->lane_cal_sts = 0.0;
    msg_p->lane_cal_flt_sts = 0.0;
    msg_p->curr_cal_result_sts = 0.0;
    msg_p->ri_cam_inp_fail_sts = 0.0;
    msg_p->le_cam_inp_fail_sts = 0.0;
    msg_p->rear_cam_inp_fail_sts = 0.0;
    msg_p->frnt_cam_inp_fail_sts = 0.0;
    msg_p->eol_not_cmpltd = 0.0;
    msg_p->ovl_op_fail_sts = 0.0;
    msg_p->avm_3_d_ang_sts = 0.0;
    msg_p->hap_disp_cmd = 0.0;
    msg_p->dvr_work_sts = 0.0;

    return 0;
}

uint8_t b30_001_hap_fd2_avm_curr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_avm_curr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_avm_curr_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd2_sig_view_indcn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_sig_view_indcn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_sig_view_indcn_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hap_fd2_mod_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_mod_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_mod_work_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_mod_alarm_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_mod_alarm_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_mod_alarm_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_car_mdl_disp_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_car_mdl_disp_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_car_mdl_disp_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_auto_view_chg_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_auto_view_chg_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_auto_view_chg_func_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_auto_avm_swt_set_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_auto_avm_swt_set_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_auto_avm_swt_set_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_hap_hmi_index_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_hap_hmi_index_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_hap_hmi_index_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd2_guid_ovl_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_guid_ovl_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_guid_ovl_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd2_radar_disp_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_radar_disp_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_radar_disp_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd2_mdl_colr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_mdl_colr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_mdl_colr_sts_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd2_car_mdl_trsprcy_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_car_mdl_trsprcy_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_car_mdl_trsprcy_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd2_lane_cal_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_lane_cal_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_lane_cal_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd2_lane_cal_flt_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_lane_cal_flt_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_lane_cal_flt_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hap_fd2_curr_cal_result_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_curr_cal_result_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_curr_cal_result_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_ri_cam_inp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_ri_cam_inp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_ri_cam_inp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_le_cam_inp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_le_cam_inp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_le_cam_inp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_rear_cam_inp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_rear_cam_inp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_rear_cam_inp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_frnt_cam_inp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_frnt_cam_inp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_frnt_cam_inp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_eol_not_cmpltd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_eol_not_cmpltd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_eol_not_cmpltd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_ovl_op_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_ovl_op_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_ovl_op_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_hap_fd2_avm_3_d_ang_sts_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hap_fd2_avm_3_d_ang_sts_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_avm_3_d_ang_sts_is_in_range(uint16_t value)
{
    return (value <= 360u);
}

uint8_t b30_001_hap_fd2_hap_disp_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_hap_disp_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_hap_disp_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd2_dvr_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd2_dvr_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd2_dvr_work_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

int b30_001_hap_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_hap_fd3_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->rpas_near_brrdstn, 0u, 0xffu);
    dst_p[3] |= pack_left_shift_u8(src_p->p2_p_proc_bar, 1u, 0xfeu);
    dst_p[9] |= pack_left_shift_u8(src_p->aps_obj_ri_side_ar1, 4u, 0xf0u);
    dst_p[9] |= pack_left_shift_u8(src_p->aps_obj_ri_side_ar2, 0u, 0x0fu);
    dst_p[10] |= pack_left_shift_u8(src_p->aps_obj_ri_side_ar3, 4u, 0xf0u);
    dst_p[10] |= pack_left_shift_u8(src_p->aps_obj_ri_side_ar4, 0u, 0x0fu);
    dst_p[11] |= pack_left_shift_u8(src_p->aps_obj_ri_side_ar5, 4u, 0xf0u);
    dst_p[11] |= pack_left_shift_u8(src_p->aps_obj_le_side_ar1, 0u, 0x0fu);
    dst_p[12] |= pack_left_shift_u8(src_p->aps_obj_le_side_ar2, 4u, 0xf0u);
    dst_p[12] |= pack_left_shift_u8(src_p->aps_obj_le_side_ar3, 0u, 0x0fu);
    dst_p[13] |= pack_left_shift_u8(src_p->aps_obj_le_side_ar4, 4u, 0xf0u);
    dst_p[13] |= pack_left_shift_u8(src_p->aps_obj_le_side_ar5, 0u, 0x0fu);
    dst_p[14] |= pack_left_shift_u8(src_p->aps_fr_side_snsr_fail_sts, 7u, 0x80u);
    dst_p[14] |= pack_left_shift_u8(src_p->aps_fl_side_snsr_fail_sts, 6u, 0x40u);
    dst_p[14] |= pack_left_shift_u8(src_p->aps_rr_side_snsr_fail_sts, 5u, 0x20u);
    dst_p[14] |= pack_left_shift_u8(src_p->aps_rl_side_snsr_fail_sts, 4u, 0x10u);
    dst_p[14] |= pack_left_shift_u8(src_p->sdw_sound_indcn, 2u, 0x0cu);
    dst_p[14] |= pack_left_shift_u8(src_p->sdw_active_sts, 0u, 0x01u);
    dst_p[17] |= pack_left_shift_u8(src_p->rpas_obj_rr_cornr_ar1, 4u, 0xf0u);
    dst_p[17] |= pack_left_shift_u8(src_p->rpas_obj_rr_cornr_ar2, 0u, 0x0fu);
    dst_p[18] |= pack_left_shift_u8(src_p->rpas_obj_rr_midl_ar1, 4u, 0xf0u);
    dst_p[18] |= pack_left_shift_u8(src_p->rpas_obj_rr_midl_ar2, 0u, 0x0fu);
    dst_p[19] |= pack_left_shift_u8(src_p->rpas_obj_rl_midl_ar1, 4u, 0xf0u);
    dst_p[19] |= pack_left_shift_u8(src_p->rpas_obj_rl_midl_ar2, 0u, 0x0fu);
    dst_p[20] |= pack_left_shift_u8(src_p->rpas_obj_rl_cornr_ar1, 4u, 0xf0u);
    dst_p[20] |= pack_left_shift_u8(src_p->rpas_obj_rl_cornr_ar2, 0u, 0x0fu);
    dst_p[21] |= pack_left_shift_u8(src_p->rpas_rl_cornr_snsr_fail_sts, 7u, 0x80u);
    dst_p[21] |= pack_left_shift_u8(src_p->rpas_rl_middl_snsr_fail_sts, 6u, 0x40u);
    dst_p[21] |= pack_left_shift_u8(src_p->rpas_rr_middl_snsr_fail_sts, 5u, 0x20u);
    dst_p[21] |= pack_left_shift_u8(src_p->rpas_rr_cornr_snsr_fail_sts, 4u, 0x10u);
    dst_p[21] |= pack_left_shift_u8(src_p->rpas_work_sts, 2u, 0x0cu);
    dst_p[22] |= pack_left_shift_u8(src_p->rpas_sound_indcn, 6u, 0xc0u);
    dst_p[22] |= pack_left_shift_u8(src_p->meb_work_sts, 3u, 0x18u);
    dst_p[22] |= pack_left_shift_u8(src_p->meb_enable_sts, 2u, 0x04u);
    dst_p[25] |= pack_left_shift_u8(src_p->fpas_obj_fl_cornr_ar1, 4u, 0xf0u);
    dst_p[25] |= pack_left_shift_u8(src_p->fpas_obj_fl_cornr_ar2, 0u, 0x0fu);
    dst_p[26] |= pack_left_shift_u8(src_p->fpas_obj_fl_midl_ar1, 4u, 0xf0u);
    dst_p[26] |= pack_left_shift_u8(src_p->fpas_obj_fl_midl_ar2, 0u, 0x0fu);
    dst_p[27] |= pack_left_shift_u8(src_p->fpas_obj_fr_midl_ar1, 4u, 0xf0u);
    dst_p[27] |= pack_left_shift_u8(src_p->fpas_obj_fr_midl_ar2, 0u, 0x0fu);
    dst_p[28] |= pack_left_shift_u8(src_p->fpas_obj_fr_cornr_ar1, 4u, 0xf0u);
    dst_p[28] |= pack_left_shift_u8(src_p->fpas_obj_fr_cornr_ar2, 0u, 0x0fu);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_fl_cornr_snsr_fail_sts, 7u, 0x80u);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_fl_middl_snsr_fail_sts, 6u, 0x40u);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_fr_middl_snsr_fail_sts, 5u, 0x20u);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_fr_cornr_snsr_fail_sts, 4u, 0x10u);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_work_sts, 2u, 0x0cu);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_disp_cmd, 1u, 0x02u);
    dst_p[29] |= pack_left_shift_u8(src_p->fpas_auto_mod_sts, 0u, 0x01u);
    dst_p[30] |= pack_left_shift_u8(src_p->fpas_sound_indcn, 6u, 0xc0u);
    dst_p[30] |= pack_right_shift_u8(src_p->fpas_near_brrdstn, 4u, 0x07u);
    dst_p[31] |= pack_left_shift_u8(src_p->fpas_near_brrdstn, 4u, 0xf0u);
    dst_p[33] |= pack_left_shift_u8(src_p->apa_func_sts, 6u, 0xc0u);
    dst_p[33] |= pack_left_shift_u8(src_p->p2_p_func_sts, 4u, 0x30u);
    dst_p[33] |= pack_left_shift_u8(src_p->rads_func_sts, 2u, 0x0cu);
    dst_p[33] |= pack_left_shift_u8(src_p->fads_func_sts, 0u, 0x03u);
    dst_p[34] |= pack_left_shift_u8(src_p->apa_menu_disp_ctrl_cmd, 4u, 0xf0u);
    dst_p[34] |= pack_left_shift_u8(src_p->hap_text_icon_disp_ctrl, 2u, 0x0cu);
    dst_p[34] |= pack_left_shift_u8(src_p->orvm_ctrl_cmd, 0u, 0x03u);
    dst_p[35] |= pack_left_shift_u8(src_p->rmt_prkg_finish_req, 6u, 0xc0u);
    dst_p[35] |= pack_left_shift_u8(src_p->rmt_prkg_sts, 5u, 0x20u);
    dst_p[35] |= pack_right_shift_u16(src_p->aps_coordinate_angle, 4u, 0x1fu);
    dst_p[36] |= pack_left_shift_u16(src_p->aps_coordinate_angle, 4u, 0xf0u);
    dst_p[36] |= pack_right_shift_u16(src_p->aps_coordinate_x, 5u, 0x0fu);
    dst_p[37] |= pack_left_shift_u16(src_p->aps_coordinate_x, 3u, 0xf8u);
    dst_p[37] |= pack_right_shift_u16(src_p->aps_coordinate_y, 8u, 0x07u);
    dst_p[38] |= pack_left_shift_u16(src_p->aps_coordinate_y, 0u, 0xffu);

    return (64);
}

int b30_001_hap_fd3_unpack(
    struct b30_001_hap_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->rpas_near_brrdstn = unpack_right_shift_u8(src_p[1], 0u, 0xffu);
    dst_p->p2_p_proc_bar = unpack_right_shift_u8(src_p[3], 1u, 0xfeu);
    dst_p->aps_obj_ri_side_ar1 = unpack_right_shift_u8(src_p[9], 4u, 0xf0u);
    dst_p->aps_obj_ri_side_ar2 = unpack_right_shift_u8(src_p[9], 0u, 0x0fu);
    dst_p->aps_obj_ri_side_ar3 = unpack_right_shift_u8(src_p[10], 4u, 0xf0u);
    dst_p->aps_obj_ri_side_ar4 = unpack_right_shift_u8(src_p[10], 0u, 0x0fu);
    dst_p->aps_obj_ri_side_ar5 = unpack_right_shift_u8(src_p[11], 4u, 0xf0u);
    dst_p->aps_obj_le_side_ar1 = unpack_right_shift_u8(src_p[11], 0u, 0x0fu);
    dst_p->aps_obj_le_side_ar2 = unpack_right_shift_u8(src_p[12], 4u, 0xf0u);
    dst_p->aps_obj_le_side_ar3 = unpack_right_shift_u8(src_p[12], 0u, 0x0fu);
    dst_p->aps_obj_le_side_ar4 = unpack_right_shift_u8(src_p[13], 4u, 0xf0u);
    dst_p->aps_obj_le_side_ar5 = unpack_right_shift_u8(src_p[13], 0u, 0x0fu);
    dst_p->aps_fr_side_snsr_fail_sts = unpack_right_shift_u8(src_p[14], 7u, 0x80u);
    dst_p->aps_fl_side_snsr_fail_sts = unpack_right_shift_u8(src_p[14], 6u, 0x40u);
    dst_p->aps_rr_side_snsr_fail_sts = unpack_right_shift_u8(src_p[14], 5u, 0x20u);
    dst_p->aps_rl_side_snsr_fail_sts = unpack_right_shift_u8(src_p[14], 4u, 0x10u);
    dst_p->sdw_sound_indcn = unpack_right_shift_u8(src_p[14], 2u, 0x0cu);
    dst_p->sdw_active_sts = unpack_right_shift_u8(src_p[14], 0u, 0x01u);
    dst_p->rpas_obj_rr_cornr_ar1 = unpack_right_shift_u8(src_p[17], 4u, 0xf0u);
    dst_p->rpas_obj_rr_cornr_ar2 = unpack_right_shift_u8(src_p[17], 0u, 0x0fu);
    dst_p->rpas_obj_rr_midl_ar1 = unpack_right_shift_u8(src_p[18], 4u, 0xf0u);
    dst_p->rpas_obj_rr_midl_ar2 = unpack_right_shift_u8(src_p[18], 0u, 0x0fu);
    dst_p->rpas_obj_rl_midl_ar1 = unpack_right_shift_u8(src_p[19], 4u, 0xf0u);
    dst_p->rpas_obj_rl_midl_ar2 = unpack_right_shift_u8(src_p[19], 0u, 0x0fu);
    dst_p->rpas_obj_rl_cornr_ar1 = unpack_right_shift_u8(src_p[20], 4u, 0xf0u);
    dst_p->rpas_obj_rl_cornr_ar2 = unpack_right_shift_u8(src_p[20], 0u, 0x0fu);
    dst_p->rpas_rl_cornr_snsr_fail_sts = unpack_right_shift_u8(src_p[21], 7u, 0x80u);
    dst_p->rpas_rl_middl_snsr_fail_sts = unpack_right_shift_u8(src_p[21], 6u, 0x40u);
    dst_p->rpas_rr_middl_snsr_fail_sts = unpack_right_shift_u8(src_p[21], 5u, 0x20u);
    dst_p->rpas_rr_cornr_snsr_fail_sts = unpack_right_shift_u8(src_p[21], 4u, 0x10u);
    dst_p->rpas_work_sts = unpack_right_shift_u8(src_p[21], 2u, 0x0cu);
    dst_p->rpas_sound_indcn = unpack_right_shift_u8(src_p[22], 6u, 0xc0u);
    dst_p->meb_work_sts = unpack_right_shift_u8(src_p[22], 3u, 0x18u);
    dst_p->meb_enable_sts = unpack_right_shift_u8(src_p[22], 2u, 0x04u);
    dst_p->fpas_obj_fl_cornr_ar1 = unpack_right_shift_u8(src_p[25], 4u, 0xf0u);
    dst_p->fpas_obj_fl_cornr_ar2 = unpack_right_shift_u8(src_p[25], 0u, 0x0fu);
    dst_p->fpas_obj_fl_midl_ar1 = unpack_right_shift_u8(src_p[26], 4u, 0xf0u);
    dst_p->fpas_obj_fl_midl_ar2 = unpack_right_shift_u8(src_p[26], 0u, 0x0fu);
    dst_p->fpas_obj_fr_midl_ar1 = unpack_right_shift_u8(src_p[27], 4u, 0xf0u);
    dst_p->fpas_obj_fr_midl_ar2 = unpack_right_shift_u8(src_p[27], 0u, 0x0fu);
    dst_p->fpas_obj_fr_cornr_ar1 = unpack_right_shift_u8(src_p[28], 4u, 0xf0u);
    dst_p->fpas_obj_fr_cornr_ar2 = unpack_right_shift_u8(src_p[28], 0u, 0x0fu);
    dst_p->fpas_fl_cornr_snsr_fail_sts = unpack_right_shift_u8(src_p[29], 7u, 0x80u);
    dst_p->fpas_fl_middl_snsr_fail_sts = unpack_right_shift_u8(src_p[29], 6u, 0x40u);
    dst_p->fpas_fr_middl_snsr_fail_sts = unpack_right_shift_u8(src_p[29], 5u, 0x20u);
    dst_p->fpas_fr_cornr_snsr_fail_sts = unpack_right_shift_u8(src_p[29], 4u, 0x10u);
    dst_p->fpas_work_sts = unpack_right_shift_u8(src_p[29], 2u, 0x0cu);
    dst_p->fpas_disp_cmd = unpack_right_shift_u8(src_p[29], 1u, 0x02u);
    dst_p->fpas_auto_mod_sts = unpack_right_shift_u8(src_p[29], 0u, 0x01u);
    dst_p->fpas_sound_indcn = unpack_right_shift_u8(src_p[30], 6u, 0xc0u);
    dst_p->fpas_near_brrdstn = unpack_left_shift_u8(src_p[30], 4u, 0x07u);
    dst_p->fpas_near_brrdstn |= unpack_right_shift_u8(src_p[31], 4u, 0xf0u);
    dst_p->apa_func_sts = unpack_right_shift_u8(src_p[33], 6u, 0xc0u);
    dst_p->p2_p_func_sts = unpack_right_shift_u8(src_p[33], 4u, 0x30u);
    dst_p->rads_func_sts = unpack_right_shift_u8(src_p[33], 2u, 0x0cu);
    dst_p->fads_func_sts = unpack_right_shift_u8(src_p[33], 0u, 0x03u);
    dst_p->apa_menu_disp_ctrl_cmd = unpack_right_shift_u8(src_p[34], 4u, 0xf0u);
    dst_p->hap_text_icon_disp_ctrl = unpack_right_shift_u8(src_p[34], 2u, 0x0cu);
    dst_p->orvm_ctrl_cmd = unpack_right_shift_u8(src_p[34], 0u, 0x03u);
    dst_p->rmt_prkg_finish_req = unpack_right_shift_u8(src_p[35], 6u, 0xc0u);
    dst_p->rmt_prkg_sts = unpack_right_shift_u8(src_p[35], 5u, 0x20u);
    dst_p->aps_coordinate_angle = unpack_left_shift_u16(src_p[35], 4u, 0x1fu);
    dst_p->aps_coordinate_angle |= unpack_right_shift_u16(src_p[36], 4u, 0xf0u);
    dst_p->aps_coordinate_x = unpack_left_shift_u16(src_p[36], 5u, 0x0fu);
    dst_p->aps_coordinate_x |= unpack_right_shift_u16(src_p[37], 3u, 0xf8u);
    dst_p->aps_coordinate_y = unpack_left_shift_u16(src_p[37], 8u, 0x07u);
    dst_p->aps_coordinate_y |= unpack_right_shift_u16(src_p[38], 0u, 0xffu);

    return (0);
}

int b30_001_hap_fd3_init(struct b30_001_hap_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hap_fd3_t));
    msg_p->rpas_near_brrdstn = 255.0;
    msg_p->p2_p_proc_bar = 127.0;
    msg_p->aps_obj_ri_side_ar1 = 0.0;
    msg_p->aps_obj_ri_side_ar2 = 0.0;
    msg_p->aps_obj_ri_side_ar3 = 0.0;
    msg_p->aps_obj_ri_side_ar4 = 0.0;
    msg_p->aps_obj_ri_side_ar5 = 0.0;
    msg_p->aps_obj_le_side_ar1 = 0.0;
    msg_p->aps_obj_le_side_ar2 = 0.0;
    msg_p->aps_obj_le_side_ar3 = 0.0;
    msg_p->aps_obj_le_side_ar4 = 0.0;
    msg_p->aps_obj_le_side_ar5 = 0.0;
    msg_p->aps_fr_side_snsr_fail_sts = 0.0;
    msg_p->aps_fl_side_snsr_fail_sts = 0.0;
    msg_p->aps_rr_side_snsr_fail_sts = 0.0;
    msg_p->aps_rl_side_snsr_fail_sts = 0.0;
    msg_p->sdw_sound_indcn = 0.0;
    msg_p->sdw_active_sts = 0.0;
    msg_p->rpas_obj_rr_cornr_ar1 = 0.0;
    msg_p->rpas_obj_rr_cornr_ar2 = 0.0;
    msg_p->rpas_obj_rr_midl_ar1 = 0.0;
    msg_p->rpas_obj_rr_midl_ar2 = 0.0;
    msg_p->rpas_obj_rl_midl_ar1 = 0.0;
    msg_p->rpas_obj_rl_midl_ar2 = 0.0;
    msg_p->rpas_obj_rl_cornr_ar1 = 0.0;
    msg_p->rpas_obj_rl_cornr_ar2 = 0.0;
    msg_p->rpas_rl_cornr_snsr_fail_sts = 0.0;
    msg_p->rpas_rl_middl_snsr_fail_sts = 0.0;
    msg_p->rpas_rr_middl_snsr_fail_sts = 0.0;
    msg_p->rpas_rr_cornr_snsr_fail_sts = 0.0;
    msg_p->rpas_work_sts = 0.0;
    msg_p->rpas_sound_indcn = 0.0;
    msg_p->meb_work_sts = 0.0;
    msg_p->meb_enable_sts = 0.0;
    msg_p->fpas_obj_fl_cornr_ar1 = 0.0;
    msg_p->fpas_obj_fl_cornr_ar2 = 0.0;
    msg_p->fpas_obj_fl_midl_ar1 = 0.0;
    msg_p->fpas_obj_fl_midl_ar2 = 0.0;
    msg_p->fpas_obj_fr_midl_ar1 = 0.0;
    msg_p->fpas_obj_fr_midl_ar2 = 0.0;
    msg_p->fpas_obj_fr_cornr_ar1 = 0.0;
    msg_p->fpas_obj_fr_cornr_ar2 = 0.0;
    msg_p->fpas_fl_cornr_snsr_fail_sts = 0.0;
    msg_p->fpas_fl_middl_snsr_fail_sts = 0.0;
    msg_p->fpas_fr_middl_snsr_fail_sts = 0.0;
    msg_p->fpas_fr_cornr_snsr_fail_sts = 0.0;
    msg_p->fpas_work_sts = 0.0;
    msg_p->fpas_disp_cmd = 0.0;
    msg_p->fpas_auto_mod_sts = 0.0;
    msg_p->fpas_sound_indcn = 0.0;
    msg_p->fpas_near_brrdstn = 127.0;
    msg_p->apa_func_sts = 0.0;
    msg_p->p2_p_func_sts = 0.0;
    msg_p->rads_func_sts = 0.0;
    msg_p->fads_func_sts = 0.0;
    msg_p->apa_menu_disp_ctrl_cmd = 0.0;
    msg_p->hap_text_icon_disp_ctrl = 0.0;
    msg_p->orvm_ctrl_cmd = 0.0;
    msg_p->rmt_prkg_finish_req = 0.0;
    msg_p->rmt_prkg_sts = 0.0;
    msg_p->aps_coordinate_angle = 0.0;
    msg_p->aps_coordinate_x = 0.0;
    msg_p->aps_coordinate_y = 0.0;

    return 0;
}

uint8_t b30_001_hap_fd3_rpas_near_brrdstn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_near_brrdstn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_near_brrdstn_is_in_range(uint8_t value)
{
    return (value <= 150u);
}

uint8_t b30_001_hap_fd3_p2_p_proc_bar_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_p2_p_proc_bar_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_p2_p_proc_bar_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_hap_fd3_aps_obj_ri_side_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_ri_side_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_ri_side_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_ri_side_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_ri_side_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_ri_side_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_ri_side_ar3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_ri_side_ar3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_ri_side_ar3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_ri_side_ar4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_ri_side_ar4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_ri_side_ar4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_ri_side_ar5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_ri_side_ar5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_ri_side_ar5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_le_side_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_le_side_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_le_side_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_le_side_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_le_side_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_le_side_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_le_side_ar3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_le_side_ar3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_le_side_ar3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_le_side_ar4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_le_side_ar4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_le_side_ar4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_obj_le_side_ar5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_obj_le_side_ar5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_obj_le_side_ar5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_aps_fr_side_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_fr_side_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_fr_side_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_aps_fl_side_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_fl_side_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_fl_side_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_aps_rr_side_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_rr_side_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_rr_side_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_aps_rl_side_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_aps_rl_side_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_rl_side_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_sdw_sound_indcn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_sdw_sound_indcn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_sdw_sound_indcn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_sdw_active_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_sdw_active_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_sdw_active_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rr_cornr_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rr_cornr_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rr_cornr_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rr_cornr_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rr_cornr_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rr_cornr_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rr_midl_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rr_midl_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rr_midl_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rr_midl_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rr_midl_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rr_midl_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rl_midl_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rl_midl_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rl_midl_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rl_midl_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rl_midl_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rl_midl_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rl_cornr_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rl_cornr_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rl_cornr_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_obj_rl_cornr_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_obj_rl_cornr_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_obj_rl_cornr_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_rpas_rl_cornr_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_rl_cornr_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_rl_cornr_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_rpas_rl_middl_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_rl_middl_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_rl_middl_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_rpas_rr_middl_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_rr_middl_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_rr_middl_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_rpas_rr_cornr_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_rr_cornr_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_rr_cornr_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_rpas_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_work_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_rpas_sound_indcn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rpas_sound_indcn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rpas_sound_indcn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_meb_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_meb_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_meb_work_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_meb_enable_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_meb_enable_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_meb_enable_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fl_cornr_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fl_cornr_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fl_cornr_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fl_cornr_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fl_cornr_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fl_cornr_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fl_midl_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fl_midl_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fl_midl_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fl_midl_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fl_midl_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fl_midl_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fr_midl_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fr_midl_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fr_midl_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fr_midl_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fr_midl_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fr_midl_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fr_cornr_ar1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fr_cornr_ar1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fr_cornr_ar1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_obj_fr_cornr_ar2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_obj_fr_cornr_ar2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_obj_fr_cornr_ar2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_fpas_fl_cornr_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_fl_cornr_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_fl_cornr_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_fl_middl_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_fl_middl_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_fl_middl_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_fr_middl_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_fr_middl_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_fr_middl_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_fr_cornr_snsr_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_fr_cornr_snsr_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_fr_cornr_snsr_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_work_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_fpas_disp_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_disp_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_disp_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_auto_mod_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_auto_mod_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_auto_mod_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hap_fd3_fpas_sound_indcn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_sound_indcn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_sound_indcn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_fpas_near_brrdstn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fpas_near_brrdstn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fpas_near_brrdstn_is_in_range(uint8_t value)
{
    return (value <= 100u);
}

uint8_t b30_001_hap_fd3_apa_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_apa_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_apa_func_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_p2_p_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_p2_p_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_p2_p_func_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_rads_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rads_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rads_func_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_fads_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_fads_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_fads_func_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_apa_menu_disp_ctrl_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_apa_menu_disp_ctrl_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_apa_menu_disp_ctrl_cmd_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hap_fd3_hap_text_icon_disp_ctrl_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_hap_text_icon_disp_ctrl_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_hap_text_icon_disp_ctrl_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_orvm_ctrl_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_orvm_ctrl_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_orvm_ctrl_cmd_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_rmt_prkg_finish_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rmt_prkg_finish_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rmt_prkg_finish_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd3_rmt_prkg_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd3_rmt_prkg_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_rmt_prkg_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_hap_fd3_aps_coordinate_angle_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hap_fd3_aps_coordinate_angle_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd3_aps_coordinate_angle_is_in_range(uint16_t value)
{
    return (value <= 359u);
}

uint16_t b30_001_hap_fd3_aps_coordinate_x_encode(double value)
{
    return (uint16_t)((value - -1000.0) / 4.0);
}

double b30_001_hap_fd3_aps_coordinate_x_decode(uint16_t value)
{
    return (((double)value * 4.0) + -1000.0);
}

bool b30_001_hap_fd3_aps_coordinate_x_is_in_range(uint16_t value)
{
    return (value <= 500u);
}

uint16_t b30_001_hap_fd3_aps_coordinate_y_encode(double value)
{
    return (uint16_t)((value - -2000.0) / 2.0);
}

double b30_001_hap_fd3_aps_coordinate_y_decode(uint16_t value)
{
    return (((double)value * 2.0) + -2000.0);
}

bool b30_001_hap_fd3_aps_coordinate_y_is_in_range(uint16_t value)
{
    return (value <= 2000u);
}

int b30_001_hap_fd6_pack(
    uint8_t *dst_p,
    const struct b30_001_hap_fd6_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->hap_rt_side_obj1_id, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->hap_rt_side_obj1_type, 1u, 0x0eu);
    dst_p[2] |= pack_right_shift_u16(src_p->hap_rt_side_obj1_ground_pos_x, 4u, 0xffu);
    dst_p[3] |= pack_left_shift_u16(src_p->hap_rt_side_obj1_ground_pos_x, 4u, 0xf0u);
    dst_p[3] |= pack_left_shift_u8(src_p->hap_rt_side_obj1_confidence, 0u, 0x0fu);
    dst_p[4] |= pack_right_shift_u16(src_p->hap_rt_side_obj1_ground_pos_y, 4u, 0xffu);
    dst_p[5] |= pack_left_shift_u16(src_p->hap_rt_side_obj1_ground_pos_y, 4u, 0xf0u);
    dst_p[7] |= pack_left_shift_u8(src_p->hap_rt_cam_work_sts, 4u, 0x30u);
    dst_p[9] |= pack_left_shift_u8(src_p->hap_rt_side_obj2_id, 4u, 0xf0u);
    dst_p[9] |= pack_left_shift_u8(src_p->hap_rt_side_obj2_type, 1u, 0x0eu);
    dst_p[10] |= pack_right_shift_u16(src_p->hap_rt_side_obj2_ground_pos_x, 4u, 0xffu);
    dst_p[11] |= pack_left_shift_u16(src_p->hap_rt_side_obj2_ground_pos_x, 4u, 0xf0u);
    dst_p[11] |= pack_left_shift_u8(src_p->hap_rt_side_obj2_confidence, 0u, 0x0fu);
    dst_p[12] |= pack_right_shift_u16(src_p->hap_rt_side_obj2_ground_pos_y, 4u, 0xffu);
    dst_p[13] |= pack_left_shift_u16(src_p->hap_rt_side_obj2_ground_pos_y, 4u, 0xf0u);
    dst_p[17] |= pack_left_shift_u8(src_p->hap_rt_side_obj3_id, 4u, 0xf0u);
    dst_p[17] |= pack_left_shift_u8(src_p->hap_rt_side_obj3_type, 1u, 0x0eu);
    dst_p[18] |= pack_right_shift_u16(src_p->hap_rt_side_obj3_ground_pos_x, 4u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->hap_rt_side_obj3_ground_pos_x, 4u, 0xf0u);
    dst_p[19] |= pack_left_shift_u8(src_p->hap_rt_side_obj3_confidence, 0u, 0x0fu);
    dst_p[20] |= pack_right_shift_u16(src_p->hap_rt_side_obj3_ground_pos_y, 4u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->hap_rt_side_obj3_ground_pos_y, 4u, 0xf0u);
    dst_p[25] |= pack_left_shift_u8(src_p->hap_rt_side_obj4_id, 4u, 0xf0u);
    dst_p[25] |= pack_left_shift_u8(src_p->hap_rt_side_obj4_type, 1u, 0x0eu);
    dst_p[26] |= pack_right_shift_u16(src_p->hap_rt_side_obj4_ground_pos_x, 4u, 0xffu);
    dst_p[27] |= pack_left_shift_u16(src_p->hap_rt_side_obj4_ground_pos_x, 4u, 0xf0u);
    dst_p[27] |= pack_left_shift_u8(src_p->hap_rt_side_obj4_confidence, 0u, 0x0fu);
    dst_p[28] |= pack_right_shift_u16(src_p->hap_rt_side_obj4_ground_pos_y, 4u, 0xffu);
    dst_p[29] |= pack_left_shift_u16(src_p->hap_rt_side_obj4_ground_pos_y, 4u, 0xf0u);
    dst_p[33] |= pack_left_shift_u8(src_p->uss_fl_side1_status, 6u, 0xc0u);
    dst_p[33] |= pack_left_shift_u8(src_p->uss_rl_side2_status, 4u, 0x30u);
    dst_p[33] |= pack_left_shift_u8(src_p->uss_fr_side1_status, 2u, 0x0cu);
    dst_p[33] |= pack_left_shift_u8(src_p->uss_rr_side2_status, 0u, 0x03u);
    dst_p[34] |= pack_left_shift_u8(src_p->uss_fl_side1_dist, 1u, 0xfeu);
    dst_p[35] |= pack_left_shift_u8(src_p->uss_rl_side2_dist, 1u, 0xfeu);
    dst_p[36] |= pack_left_shift_u8(src_p->uss_fr_side1_dist, 1u, 0xfeu);
    dst_p[37] |= pack_left_shift_u8(src_p->uss_rr_side2_dist, 1u, 0xfeu);
    dst_p[41] |= pack_left_shift_u8(src_p->uss_flc_near_obj_pos_x, 2u, 0xfcu);
    dst_p[41] |= pack_right_shift_u8(src_p->uss_flc_near_obj_pos_y, 4u, 0x03u);
    dst_p[42] |= pack_left_shift_u8(src_p->uss_flc_near_obj_pos_y, 4u, 0xf0u);
    dst_p[42] |= pack_left_shift_u8(src_p->uss_flc_near_obj_confidence, 0u, 0x0fu);
    dst_p[43] |= pack_left_shift_u8(src_p->uss_flm_near_obj_pos_x, 2u, 0xfcu);
    dst_p[43] |= pack_right_shift_u8(src_p->uss_flm_near_obj_pos_y, 4u, 0x03u);
    dst_p[44] |= pack_left_shift_u8(src_p->uss_flm_near_obj_pos_y, 4u, 0xf0u);
    dst_p[44] |= pack_left_shift_u8(src_p->uss_flm_near_obj_confidence, 0u, 0x0fu);
    dst_p[45] |= pack_left_shift_u8(src_p->uss_frm_near_obj_pos_x, 2u, 0xfcu);
    dst_p[45] |= pack_right_shift_u8(src_p->uss_frm_near_obj_pos_y, 4u, 0x03u);
    dst_p[46] |= pack_left_shift_u8(src_p->uss_frm_near_obj_pos_y, 4u, 0xf0u);
    dst_p[46] |= pack_left_shift_u8(src_p->uss_frm_near_obj_confidence, 0u, 0x0fu);
    dst_p[47] |= pack_left_shift_u8(src_p->uss_front_sys_status, 6u, 0xc0u);
    dst_p[49] |= pack_left_shift_u8(src_p->uss_frc_near_obj_pos_x, 2u, 0xfcu);
    dst_p[49] |= pack_right_shift_u8(src_p->uss_frc_near_obj_pos_y, 4u, 0x03u);
    dst_p[50] |= pack_left_shift_u8(src_p->uss_frc_near_obj_pos_y, 4u, 0xf0u);
    dst_p[50] |= pack_left_shift_u8(src_p->uss_frc_near_obj_confidence, 0u, 0x0fu);

    return (64);
}

int b30_001_hap_fd6_unpack(
    struct b30_001_hap_fd6_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->hap_rt_side_obj1_id = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->hap_rt_side_obj1_type = unpack_right_shift_u8(src_p[1], 1u, 0x0eu);
    dst_p->hap_rt_side_obj1_ground_pos_x = unpack_left_shift_u16(src_p[2], 4u, 0xffu);
    dst_p->hap_rt_side_obj1_ground_pos_x |= unpack_right_shift_u16(src_p[3], 4u, 0xf0u);
    dst_p->hap_rt_side_obj1_confidence = unpack_right_shift_u8(src_p[3], 0u, 0x0fu);
    dst_p->hap_rt_side_obj1_ground_pos_y = unpack_left_shift_u16(src_p[4], 4u, 0xffu);
    dst_p->hap_rt_side_obj1_ground_pos_y |= unpack_right_shift_u16(src_p[5], 4u, 0xf0u);
    dst_p->hap_rt_cam_work_sts = unpack_right_shift_u8(src_p[7], 4u, 0x30u);
    dst_p->hap_rt_side_obj2_id = unpack_right_shift_u8(src_p[9], 4u, 0xf0u);
    dst_p->hap_rt_side_obj2_type = unpack_right_shift_u8(src_p[9], 1u, 0x0eu);
    dst_p->hap_rt_side_obj2_ground_pos_x = unpack_left_shift_u16(src_p[10], 4u, 0xffu);
    dst_p->hap_rt_side_obj2_ground_pos_x |= unpack_right_shift_u16(src_p[11], 4u, 0xf0u);
    dst_p->hap_rt_side_obj2_confidence = unpack_right_shift_u8(src_p[11], 0u, 0x0fu);
    dst_p->hap_rt_side_obj2_ground_pos_y = unpack_left_shift_u16(src_p[12], 4u, 0xffu);
    dst_p->hap_rt_side_obj2_ground_pos_y |= unpack_right_shift_u16(src_p[13], 4u, 0xf0u);
    dst_p->hap_rt_side_obj3_id = unpack_right_shift_u8(src_p[17], 4u, 0xf0u);
    dst_p->hap_rt_side_obj3_type = unpack_right_shift_u8(src_p[17], 1u, 0x0eu);
    dst_p->hap_rt_side_obj3_ground_pos_x = unpack_left_shift_u16(src_p[18], 4u, 0xffu);
    dst_p->hap_rt_side_obj3_ground_pos_x |= unpack_right_shift_u16(src_p[19], 4u, 0xf0u);
    dst_p->hap_rt_side_obj3_confidence = unpack_right_shift_u8(src_p[19], 0u, 0x0fu);
    dst_p->hap_rt_side_obj3_ground_pos_y = unpack_left_shift_u16(src_p[20], 4u, 0xffu);
    dst_p->hap_rt_side_obj3_ground_pos_y |= unpack_right_shift_u16(src_p[21], 4u, 0xf0u);
    dst_p->hap_rt_side_obj4_id = unpack_right_shift_u8(src_p[25], 4u, 0xf0u);
    dst_p->hap_rt_side_obj4_type = unpack_right_shift_u8(src_p[25], 1u, 0x0eu);
    dst_p->hap_rt_side_obj4_ground_pos_x = unpack_left_shift_u16(src_p[26], 4u, 0xffu);
    dst_p->hap_rt_side_obj4_ground_pos_x |= unpack_right_shift_u16(src_p[27], 4u, 0xf0u);
    dst_p->hap_rt_side_obj4_confidence = unpack_right_shift_u8(src_p[27], 0u, 0x0fu);
    dst_p->hap_rt_side_obj4_ground_pos_y = unpack_left_shift_u16(src_p[28], 4u, 0xffu);
    dst_p->hap_rt_side_obj4_ground_pos_y |= unpack_right_shift_u16(src_p[29], 4u, 0xf0u);
    dst_p->uss_fl_side1_status = unpack_right_shift_u8(src_p[33], 6u, 0xc0u);
    dst_p->uss_rl_side2_status = unpack_right_shift_u8(src_p[33], 4u, 0x30u);
    dst_p->uss_fr_side1_status = unpack_right_shift_u8(src_p[33], 2u, 0x0cu);
    dst_p->uss_rr_side2_status = unpack_right_shift_u8(src_p[33], 0u, 0x03u);
    dst_p->uss_fl_side1_dist = unpack_right_shift_u8(src_p[34], 1u, 0xfeu);
    dst_p->uss_rl_side2_dist = unpack_right_shift_u8(src_p[35], 1u, 0xfeu);
    dst_p->uss_fr_side1_dist = unpack_right_shift_u8(src_p[36], 1u, 0xfeu);
    dst_p->uss_rr_side2_dist = unpack_right_shift_u8(src_p[37], 1u, 0xfeu);
    dst_p->uss_flc_near_obj_pos_x = unpack_right_shift_u8(src_p[41], 2u, 0xfcu);
    dst_p->uss_flc_near_obj_pos_y = unpack_left_shift_u8(src_p[41], 4u, 0x03u);
    dst_p->uss_flc_near_obj_pos_y |= unpack_right_shift_u8(src_p[42], 4u, 0xf0u);
    dst_p->uss_flc_near_obj_confidence = unpack_right_shift_u8(src_p[42], 0u, 0x0fu);
    dst_p->uss_flm_near_obj_pos_x = unpack_right_shift_u8(src_p[43], 2u, 0xfcu);
    dst_p->uss_flm_near_obj_pos_y = unpack_left_shift_u8(src_p[43], 4u, 0x03u);
    dst_p->uss_flm_near_obj_pos_y |= unpack_right_shift_u8(src_p[44], 4u, 0xf0u);
    dst_p->uss_flm_near_obj_confidence = unpack_right_shift_u8(src_p[44], 0u, 0x0fu);
    dst_p->uss_frm_near_obj_pos_x = unpack_right_shift_u8(src_p[45], 2u, 0xfcu);
    dst_p->uss_frm_near_obj_pos_y = unpack_left_shift_u8(src_p[45], 4u, 0x03u);
    dst_p->uss_frm_near_obj_pos_y |= unpack_right_shift_u8(src_p[46], 4u, 0xf0u);
    dst_p->uss_frm_near_obj_confidence = unpack_right_shift_u8(src_p[46], 0u, 0x0fu);
    dst_p->uss_front_sys_status = unpack_right_shift_u8(src_p[47], 6u, 0xc0u);
    dst_p->uss_frc_near_obj_pos_x = unpack_right_shift_u8(src_p[49], 2u, 0xfcu);
    dst_p->uss_frc_near_obj_pos_y = unpack_left_shift_u8(src_p[49], 4u, 0x03u);
    dst_p->uss_frc_near_obj_pos_y |= unpack_right_shift_u8(src_p[50], 4u, 0xf0u);
    dst_p->uss_frc_near_obj_confidence = unpack_right_shift_u8(src_p[50], 0u, 0x0fu);

    return (0);
}

int b30_001_hap_fd6_init(struct b30_001_hap_fd6_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hap_fd6_t));
    msg_p->hap_rt_side_obj1_id = 0.0;
    msg_p->hap_rt_side_obj1_type = 0.0;
    msg_p->hap_rt_side_obj1_ground_pos_x = 0.0;
    msg_p->hap_rt_side_obj1_confidence = 0.0;
    msg_p->hap_rt_side_obj1_ground_pos_y = 0.0;
    msg_p->hap_rt_cam_work_sts = 1.0;
    msg_p->hap_rt_side_obj2_id = 0.0;
    msg_p->hap_rt_side_obj2_type = 0.0;
    msg_p->hap_rt_side_obj2_ground_pos_x = 0.0;
    msg_p->hap_rt_side_obj2_confidence = 0.0;
    msg_p->hap_rt_side_obj2_ground_pos_y = 0.0;
    msg_p->hap_rt_side_obj3_id = 0.0;
    msg_p->hap_rt_side_obj3_type = 0.0;
    msg_p->hap_rt_side_obj3_ground_pos_x = 0.0;
    msg_p->hap_rt_side_obj3_confidence = 0.0;
    msg_p->hap_rt_side_obj3_ground_pos_y = 0.0;
    msg_p->hap_rt_side_obj4_id = 0.0;
    msg_p->hap_rt_side_obj4_type = 0.0;
    msg_p->hap_rt_side_obj4_ground_pos_x = 0.0;
    msg_p->hap_rt_side_obj4_confidence = 0.0;
    msg_p->hap_rt_side_obj4_ground_pos_y = 0.0;
    msg_p->uss_fl_side1_status = 1.0;
    msg_p->uss_rl_side2_status = 1.0;
    msg_p->uss_fr_side1_status = 1.0;
    msg_p->uss_rr_side2_status = 1.0;
    msg_p->uss_fl_side1_dist = 0.0;
    msg_p->uss_rl_side2_dist = 0.0;
    msg_p->uss_fr_side1_dist = 0.0;
    msg_p->uss_rr_side2_dist = 0.0;
    msg_p->uss_flc_near_obj_pos_x = 0.0;
    msg_p->uss_flc_near_obj_pos_y = 0.0;
    msg_p->uss_flc_near_obj_confidence = 0.0;
    msg_p->uss_flm_near_obj_pos_x = 0.0;
    msg_p->uss_flm_near_obj_pos_y = 0.0;
    msg_p->uss_flm_near_obj_confidence = 0.0;
    msg_p->uss_frm_near_obj_pos_x = 0.0;
    msg_p->uss_frm_near_obj_pos_y = 0.0;
    msg_p->uss_frm_near_obj_confidence = 0.0;
    msg_p->uss_front_sys_status = 1.0;
    msg_p->uss_frc_near_obj_pos_x = 0.0;
    msg_p->uss_frc_near_obj_pos_y = 0.0;
    msg_p->uss_frc_near_obj_confidence = 0.0;

    return 0;
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj1_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj1_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj1_id_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj1_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj1_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj1_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj1_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj1_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hap_fd6_hap_rt_side_obj1_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj1_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_hap_rt_side_obj1_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_hap_rt_side_obj1_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj1_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj1_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hap_fd6_hap_rt_side_obj1_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_cam_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_cam_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_cam_work_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj2_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj2_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj2_id_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj2_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj2_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj2_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj2_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj2_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hap_fd6_hap_rt_side_obj2_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj2_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_hap_rt_side_obj2_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_hap_rt_side_obj2_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj2_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj2_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hap_fd6_hap_rt_side_obj2_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj3_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj3_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj3_id_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj3_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj3_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj3_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj3_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj3_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hap_fd6_hap_rt_side_obj3_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj3_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_hap_rt_side_obj3_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_hap_rt_side_obj3_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj3_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj3_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hap_fd6_hap_rt_side_obj3_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj4_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj4_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj4_id_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj4_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_hap_rt_side_obj4_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_hap_rt_side_obj4_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj4_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj4_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hap_fd6_hap_rt_side_obj4_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_hap_rt_side_obj4_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_hap_rt_side_obj4_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_hap_rt_side_obj4_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint16_t b30_001_hap_fd6_hap_rt_side_obj4_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hap_fd6_hap_rt_side_obj4_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hap_fd6_hap_rt_side_obj4_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hap_fd6_uss_fl_side1_status_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_uss_fl_side1_status_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_uss_fl_side1_status_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_uss_rl_side2_status_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_uss_rl_side2_status_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_uss_rl_side2_status_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_uss_fr_side1_status_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_uss_fr_side1_status_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_uss_fr_side1_status_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_uss_rr_side2_status_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_uss_rr_side2_status_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_uss_rr_side2_status_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_uss_fl_side1_dist_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_fl_side1_dist_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_fl_side1_dist_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint8_t b30_001_hap_fd6_uss_rl_side2_dist_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_rl_side2_dist_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_rl_side2_dist_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint8_t b30_001_hap_fd6_uss_fr_side1_dist_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_fr_side1_dist_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_fr_side1_dist_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint8_t b30_001_hap_fd6_uss_rr_side2_dist_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_rr_side2_dist_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_rr_side2_dist_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint8_t b30_001_hap_fd6_uss_flc_near_obj_pos_x_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_flc_near_obj_pos_x_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_flc_near_obj_pos_x_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_flc_near_obj_pos_y_encode(double value)
{
    return (uint8_t)((value - -3.1) / 0.1);
}

double b30_001_hap_fd6_uss_flc_near_obj_pos_y_decode(uint8_t value)
{
    return (((double)value * 0.1) + -3.1);
}

bool b30_001_hap_fd6_uss_flc_near_obj_pos_y_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_flc_near_obj_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_flc_near_obj_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_flc_near_obj_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hap_fd6_uss_flm_near_obj_pos_x_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_flm_near_obj_pos_x_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_flm_near_obj_pos_x_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_flm_near_obj_pos_y_encode(double value)
{
    return (uint8_t)((value - -3.1) / 0.1);
}

double b30_001_hap_fd6_uss_flm_near_obj_pos_y_decode(uint8_t value)
{
    return (((double)value * 0.1) + -3.1);
}

bool b30_001_hap_fd6_uss_flm_near_obj_pos_y_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_flm_near_obj_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_flm_near_obj_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_flm_near_obj_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hap_fd6_uss_frm_near_obj_pos_x_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_frm_near_obj_pos_x_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_frm_near_obj_pos_x_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_frm_near_obj_pos_y_encode(double value)
{
    return (uint8_t)((value - -3.1) / 0.1);
}

double b30_001_hap_fd6_uss_frm_near_obj_pos_y_decode(uint8_t value)
{
    return (((double)value * 0.1) + -3.1);
}

bool b30_001_hap_fd6_uss_frm_near_obj_pos_y_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_frm_near_obj_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_frm_near_obj_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_frm_near_obj_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hap_fd6_uss_front_sys_status_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hap_fd6_uss_front_sys_status_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hap_fd6_uss_front_sys_status_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hap_fd6_uss_frc_near_obj_pos_x_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_frc_near_obj_pos_x_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_frc_near_obj_pos_x_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_frc_near_obj_pos_y_encode(double value)
{
    return (uint8_t)((value - -3.1) / 0.1);
}

double b30_001_hap_fd6_uss_frc_near_obj_pos_y_decode(uint8_t value)
{
    return (((double)value * 0.1) + -3.1);
}

bool b30_001_hap_fd6_uss_frc_near_obj_pos_y_is_in_range(uint8_t value)
{
    return (value <= 62u);
}

uint8_t b30_001_hap_fd6_uss_frc_near_obj_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hap_fd6_uss_frc_near_obj_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hap_fd6_uss_frc_near_obj_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

int b30_001_hc1_pack(
    uint8_t *dst_p,
    const struct b30_001_hc1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->checksum_hc1, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->high_beam_sts_hc, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->ad_bstatus, 5u, 0x60u);
    dst_p[1] |= pack_left_shift_u8(src_p->left_low_beam_fail_sts, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->right_low_beam_fail_sts, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->left_high_beam_fail_sts, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->right_high_beam_fail_sts, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->als_fail_sts, 0u, 0x01u);
    dst_p[2] |= pack_left_shift_u8(src_p->hb_status_segment0, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->hb_status_segment1, 4u, 0x30u);
    dst_p[2] |= pack_left_shift_u8(src_p->hb_status_segment2, 2u, 0x0cu);
    dst_p[2] |= pack_left_shift_u8(src_p->hb_status_segment3, 0u, 0x03u);
    dst_p[3] |= pack_left_shift_u8(src_p->hb_status_segment4, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->hb_status_segment5, 4u, 0x30u);
    dst_p[3] |= pack_left_shift_u8(src_p->hb_status_segment6, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->hb_status_segment7, 0u, 0x03u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_hc1, 0u, 0x0fu);

    return (8);
}

int b30_001_hc1_unpack(
    struct b30_001_hc1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->checksum_hc1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->high_beam_sts_hc = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->ad_bstatus = unpack_right_shift_u8(src_p[1], 5u, 0x60u);
    dst_p->left_low_beam_fail_sts = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->right_low_beam_fail_sts = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->left_high_beam_fail_sts = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->right_high_beam_fail_sts = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->als_fail_sts = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->hb_status_segment0 = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->hb_status_segment1 = unpack_right_shift_u8(src_p[2], 4u, 0x30u);
    dst_p->hb_status_segment2 = unpack_right_shift_u8(src_p[2], 2u, 0x0cu);
    dst_p->hb_status_segment3 = unpack_right_shift_u8(src_p[2], 0u, 0x03u);
    dst_p->hb_status_segment4 = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->hb_status_segment5 = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->hb_status_segment6 = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->hb_status_segment7 = unpack_right_shift_u8(src_p[3], 0u, 0x03u);
    dst_p->rolling_counter_hc1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_hc1_init(struct b30_001_hc1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hc1_t));
    msg_p->checksum_hc1 = 0.0;
    msg_p->high_beam_sts_hc = 0.0;
    msg_p->ad_bstatus = 0.0;
    msg_p->left_low_beam_fail_sts = 0.0;
    msg_p->right_low_beam_fail_sts = 0.0;
    msg_p->left_high_beam_fail_sts = 0.0;
    msg_p->right_high_beam_fail_sts = 0.0;
    msg_p->als_fail_sts = 0.0;
    msg_p->hb_status_segment0 = 0.0;
    msg_p->hb_status_segment1 = 0.0;
    msg_p->hb_status_segment2 = 0.0;
    msg_p->hb_status_segment3 = 0.0;
    msg_p->hb_status_segment4 = 0.0;
    msg_p->hb_status_segment5 = 0.0;
    msg_p->hb_status_segment6 = 0.0;
    msg_p->hb_status_segment7 = 0.0;
    msg_p->rolling_counter_hc1 = 0.0;

    return 0;
}

uint8_t b30_001_hc1_checksum_hc1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_checksum_hc1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_checksum_hc1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hc1_high_beam_sts_hc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_high_beam_sts_hc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_high_beam_sts_hc_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hc1_ad_bstatus_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_ad_bstatus_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_ad_bstatus_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_left_low_beam_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_left_low_beam_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_left_low_beam_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hc1_right_low_beam_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_right_low_beam_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_right_low_beam_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hc1_left_high_beam_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_left_high_beam_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_left_high_beam_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hc1_right_high_beam_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_right_high_beam_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_right_high_beam_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hc1_als_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_als_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_als_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hc1_hb_status_segment0_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment0_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment0_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment1_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment2_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment3_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment4_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment5_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment6_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_hb_status_segment7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_hb_status_segment7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_hb_status_segment7_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hc1_rolling_counter_hc1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc1_rolling_counter_hc1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc1_rolling_counter_hc1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_hcu_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_hcu_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_hcu_pt1, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->hcu_accel_pedal_posn_diag, 0u, 0xffu);
    dst_p[10] |= pack_left_shift_u8(src_p->hcu_brk_pedal_sts, 6u, 0xc0u);
    dst_p[10] |= pack_left_shift_u8(src_p->hcu_accel_pedal_posn_diag_valid, 5u, 0x20u);
    dst_p[10] |= pack_left_shift_u8(src_p->hcu_brk_pedal_sts_valid, 4u, 0x10u);
    dst_p[10] |= pack_right_shift_u16(src_p->act_wheel_trq_dmd, 8u, 0x0fu);
    dst_p[11] |= pack_left_shift_u16(src_p->act_wheel_trq_dmd, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_hcu_pt1, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_hcu_pt9, 0u, 0xffu);
    dst_p[17] |= pack_right_shift_u16(src_p->max_psbl_wheel_trq, 2u, 0xffu);
    dst_p[18] |= pack_left_shift_u16(src_p->max_psbl_wheel_trq, 6u, 0xc0u);
    dst_p[18] |= pack_right_shift_u16(src_p->tot_wheel_trq, 8u, 0x0fu);
    dst_p[19] |= pack_left_shift_u16(src_p->tot_wheel_trq, 0u, 0xffu);
    dst_p[20] |= pack_right_shift_u16(src_p->min_psbl_wheel_trq, 2u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->min_psbl_wheel_trq, 6u, 0xc0u);
    dst_p[21] |= pack_left_shift_u8(src_p->tot_wheel_trq_vld, 3u, 0x08u);
    dst_p[21] |= pack_left_shift_u8(src_p->hcu_acc_interface, 2u, 0x04u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_hcu_pt9, 0u, 0x0fu);
    dst_p[37] |= pack_left_shift_u8(src_p->hcu_powertrain_sts, 3u, 0xf8u);

    return (64);
}

int b30_001_hcu_fd1_unpack(
    struct b30_001_hcu_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_hcu_pt1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->hcu_accel_pedal_posn_diag = unpack_right_shift_u8(src_p[9], 0u, 0xffu);
    dst_p->hcu_brk_pedal_sts = unpack_right_shift_u8(src_p[10], 6u, 0xc0u);
    dst_p->hcu_accel_pedal_posn_diag_valid = unpack_right_shift_u8(src_p[10], 5u, 0x20u);
    dst_p->hcu_brk_pedal_sts_valid = unpack_right_shift_u8(src_p[10], 4u, 0x10u);
    dst_p->act_wheel_trq_dmd = unpack_left_shift_u16(src_p[10], 8u, 0x0fu);
    dst_p->act_wheel_trq_dmd |= unpack_right_shift_u16(src_p[11], 0u, 0xffu);
    dst_p->rolling_counter_hcu_pt1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_hcu_pt9 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->max_psbl_wheel_trq = unpack_left_shift_u16(src_p[17], 2u, 0xffu);
    dst_p->max_psbl_wheel_trq |= unpack_right_shift_u16(src_p[18], 6u, 0xc0u);
    dst_p->tot_wheel_trq = unpack_left_shift_u16(src_p[18], 8u, 0x0fu);
    dst_p->tot_wheel_trq |= unpack_right_shift_u16(src_p[19], 0u, 0xffu);
    dst_p->min_psbl_wheel_trq = unpack_left_shift_u16(src_p[20], 2u, 0xffu);
    dst_p->min_psbl_wheel_trq |= unpack_right_shift_u16(src_p[21], 6u, 0xc0u);
    dst_p->tot_wheel_trq_vld = unpack_right_shift_u8(src_p[21], 3u, 0x08u);
    dst_p->hcu_acc_interface = unpack_right_shift_u8(src_p[21], 2u, 0x04u);
    dst_p->rolling_counter_hcu_pt9 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->hcu_powertrain_sts = unpack_right_shift_u8(src_p[37], 3u, 0xf8u);

    return (0);
}

int b30_001_hcu_fd1_init(struct b30_001_hcu_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hcu_fd1_t));
    msg_p->checksum_hcu_pt1 = 0.0;
    msg_p->hcu_accel_pedal_posn_diag = 0.0;
    msg_p->hcu_brk_pedal_sts = 0.0;
    msg_p->hcu_accel_pedal_posn_diag_valid = 1.0;
    msg_p->hcu_brk_pedal_sts_valid = 0.0;
    msg_p->rolling_counter_hcu_pt1 = 0.0;
    msg_p->checksum_hcu_pt9 = 0.0;
    msg_p->tot_wheel_trq_vld = 0.0;
    msg_p->hcu_acc_interface = 0.0;
    msg_p->rolling_counter_hcu_pt9 = 0.0;
    msg_p->hcu_powertrain_sts = 0.0;

    return 0;
}

uint8_t b30_001_hcu_fd1_checksum_hcu_pt1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_checksum_hcu_pt1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_checksum_hcu_pt1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hcu_fd1_hcu_accel_pedal_posn_diag_encode(double value)
{
    return (uint8_t)(value / 0.3937);
}

double b30_001_hcu_fd1_hcu_accel_pedal_posn_diag_decode(uint8_t value)
{
    return ((double)value * 0.3937);
}

bool b30_001_hcu_fd1_hcu_accel_pedal_posn_diag_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hcu_fd1_hcu_brk_pedal_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_hcu_brk_pedal_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_hcu_brk_pedal_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hcu_fd1_hcu_accel_pedal_posn_diag_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_hcu_accel_pedal_posn_diag_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_hcu_accel_pedal_posn_diag_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hcu_fd1_hcu_brk_pedal_sts_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_hcu_brk_pedal_sts_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_hcu_brk_pedal_sts_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_hcu_fd1_act_wheel_trq_dmd_encode(double value)
{
    return (uint16_t)((value - -6000.0) / 5.0);
}

double b30_001_hcu_fd1_act_wheel_trq_dmd_decode(uint16_t value)
{
    return (((double)value * 5.0) + -6000.0);
}

bool b30_001_hcu_fd1_act_wheel_trq_dmd_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint8_t b30_001_hcu_fd1_rolling_counter_hcu_pt1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_rolling_counter_hcu_pt1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_rolling_counter_hcu_pt1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hcu_fd1_checksum_hcu_pt9_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_checksum_hcu_pt9_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_checksum_hcu_pt9_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_hcu_fd1_max_psbl_wheel_trq_encode(double value)
{
    return (uint16_t)((value - -6000.0) / 20.0);
}

double b30_001_hcu_fd1_max_psbl_wheel_trq_decode(uint16_t value)
{
    return (((double)value * 20.0) + -6000.0);
}

bool b30_001_hcu_fd1_max_psbl_wheel_trq_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_hcu_fd1_tot_wheel_trq_encode(double value)
{
    return (uint16_t)((value - -6000.0) / 5.0);
}

double b30_001_hcu_fd1_tot_wheel_trq_decode(uint16_t value)
{
    return (((double)value * 5.0) + -6000.0);
}

bool b30_001_hcu_fd1_tot_wheel_trq_is_in_range(uint16_t value)
{
    return (value <= 4095u);
}

uint16_t b30_001_hcu_fd1_min_psbl_wheel_trq_encode(double value)
{
    return (uint16_t)((value - -6000.0) / 20.0);
}

double b30_001_hcu_fd1_min_psbl_wheel_trq_decode(uint16_t value)
{
    return (((double)value * 20.0) + -6000.0);
}

bool b30_001_hcu_fd1_min_psbl_wheel_trq_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_hcu_fd1_tot_wheel_trq_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_tot_wheel_trq_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_tot_wheel_trq_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hcu_fd1_hcu_acc_interface_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_hcu_acc_interface_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_hcu_acc_interface_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hcu_fd1_rolling_counter_hcu_pt9_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_rolling_counter_hcu_pt9_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_rolling_counter_hcu_pt9_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hcu_fd1_hcu_powertrain_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd1_hcu_powertrain_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd1_hcu_powertrain_sts_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

int b30_001_hcu_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_hcu_fd3_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_hcu_pt5, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->hcu_drv_mod, 4u, 0xf0u);
    dst_p[10] |= pack_left_shift_u8(src_p->drv_trq_req_ovld, 6u, 0xc0u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_hcu_pt5, 0u, 0x0fu);
    dst_p[20] |= pack_left_shift_u8(src_p->hcu_gear_sts, 1u, 0x1eu);
    dst_p[23] |= pack_left_shift_u8(src_p->hcu_aps_available, 4u, 0x10u);

    return (64);
}

int b30_001_hcu_fd3_unpack(
    struct b30_001_hcu_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_hcu_pt5 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->hcu_drv_mod = unpack_right_shift_u8(src_p[9], 4u, 0xf0u);
    dst_p->drv_trq_req_ovld = unpack_right_shift_u8(src_p[10], 6u, 0xc0u);
    dst_p->rolling_counter_hcu_pt5 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->hcu_gear_sts = unpack_right_shift_u8(src_p[20], 1u, 0x1eu);
    dst_p->hcu_aps_available = unpack_right_shift_u8(src_p[23], 4u, 0x10u);

    return (0);
}

int b30_001_hcu_fd3_init(struct b30_001_hcu_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hcu_fd3_t));
    msg_p->checksum_hcu_pt5 = 0.0;
    msg_p->hcu_drv_mod = 0.0;
    msg_p->drv_trq_req_ovld = 0.0;
    msg_p->rolling_counter_hcu_pt5 = 0.0;
    msg_p->hcu_gear_sts = 14.0;
    msg_p->hcu_aps_available = 0.0;

    return 0;
}

uint8_t b30_001_hcu_fd3_checksum_hcu_pt5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd3_checksum_hcu_pt5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd3_checksum_hcu_pt5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hcu_fd3_hcu_drv_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd3_hcu_drv_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd3_hcu_drv_mod_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hcu_fd3_drv_trq_req_ovld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd3_drv_trq_req_ovld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd3_drv_trq_req_ovld_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hcu_fd3_rolling_counter_hcu_pt5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd3_rolling_counter_hcu_pt5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd3_rolling_counter_hcu_pt5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hcu_fd3_hcu_gear_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd3_hcu_gear_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd3_hcu_gear_sts_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hcu_fd3_hcu_aps_available_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hcu_fd3_hcu_aps_available_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hcu_fd3_hcu_aps_available_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hut_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_hut_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->intellgntcurve_req, 1u, 0x02u);
    dst_p[9] |= pack_left_shift_u8(src_p->ifc_snvty_set, 4u, 0x30u);
    dst_p[10] |= pack_left_shift_u8(src_p->lca_swt_req, 5u, 0x20u);
    dst_p[10] |= pack_left_shift_u8(src_p->rcta_swt_req, 4u, 0x10u);
    dst_p[10] |= pack_left_shift_u8(src_p->rcta_brk_swt_req, 3u, 0x08u);
    dst_p[10] |= pack_left_shift_u8(src_p->rcw_swt_req, 2u, 0x04u);
    dst_p[10] |= pack_left_shift_u8(src_p->fcw_snvty_set, 0u, 0x03u);
    dst_p[11] |= pack_left_shift_u8(src_p->aeb_veh_swt_req, 7u, 0x80u);
    dst_p[11] |= pack_left_shift_u8(src_p->lka_swt_req, 5u, 0x20u);
    dst_p[11] |= pack_left_shift_u8(src_p->lck_swt_req, 4u, 0x10u);
    dst_p[11] |= pack_left_shift_u8(src_p->elk_swt_req, 3u, 0x08u);
    dst_p[11] |= pack_left_shift_u8(src_p->ess_ped_swt_req, 2u, 0x04u);
    dst_p[11] |= pack_left_shift_u8(src_p->ess_veh_swt_req, 1u, 0x02u);
    dst_p[11] |= pack_left_shift_u8(src_p->ldw_swt_req, 0u, 0x01u);
    dst_p[12] |= pack_left_shift_u8(src_p->tsr_swt_req, 6u, 0x40u);
    dst_p[12] |= pack_left_shift_u8(src_p->tsr_warn_swt_req, 5u, 0x20u);
    dst_p[12] |= pack_left_shift_u8(src_p->lss_warn_form_swt_req, 3u, 0x18u);
    dst_p[13] |= pack_left_shift_u8(src_p->intelligent_eva_swt_req, 3u, 0x08u);
    dst_p[13] |= pack_left_shift_u8(src_p->lss_swt_req, 2u, 0x04u);
    dst_p[13] |= pack_left_shift_u8(src_p->aeb_ped_swt_req, 1u, 0x02u);
    dst_p[13] |= pack_left_shift_u8(src_p->dow_swt_req, 0u, 0x01u);
    dst_p[15] |= pack_left_shift_u8(src_p->ica_hands_off_swt_req, 7u, 0x80u);
    dst_p[15] |= pack_left_shift_u8(src_p->isl_swt_req, 6u, 0x40u);
    dst_p[15] |= pack_left_shift_u8(src_p->tsr_snvty_set, 1u, 0x3eu);
    dst_p[29] |= pack_right_shift_u16(src_p->nav_veh_to_traf_eye_dist, 2u, 0xffu);
    dst_p[30] |= pack_left_shift_u16(src_p->nav_veh_to_traf_eye_dist, 6u, 0xc0u);
    dst_p[33] |= pack_left_shift_u8(src_p->nav_spd_lim_value, 2u, 0xfcu);
    dst_p[33] |= pack_left_shift_u8(src_p->nav_spd_lim_unit_hut, 0u, 0x03u);
    dst_p[34] |= pack_right_shift_u16(src_p->nav_ctry_type, 2u, 0xffu);
    dst_p[35] |= pack_left_shift_u16(src_p->nav_ctry_type, 6u, 0xc0u);
    dst_p[35] |= pack_left_shift_u8(src_p->nav_spd_lim_sign_sts, 3u, 0x38u);
    dst_p[35] |= pack_left_shift_u8(src_p->hwa_swt_req, 0u, 0x01u);
    dst_p[36] |= pack_left_shift_u8(src_p->nav_tsr_traf_sign, 0u, 0xffu);
    dst_p[37] |= pack_left_shift_u8(src_p->hwa_snvty_set, 6u, 0xc0u);
    dst_p[37] |= pack_left_shift_u8(src_p->fcta_swt_req, 5u, 0x20u);
    dst_p[37] |= pack_left_shift_u8(src_p->fcta_brk_swt_req, 4u, 0x10u);
    dst_p[37] |= pack_left_shift_u8(src_p->aeb_ja_swt_req, 3u, 0x08u);
    dst_p[37] |= pack_left_shift_u8(src_p->aes_swt_req, 2u, 0x04u);
    dst_p[37] |= pack_left_shift_u8(src_p->alc_swt_req, 0u, 0x01u);
    dst_p[38] |= pack_left_shift_u8(src_p->nav_road_type, 4u, 0xf0u);
    dst_p[38] |= pack_left_shift_u8(src_p->nav_spd_lim_type, 2u, 0x0cu);
    dst_p[40] |= pack_left_shift_u8(src_p->adas_posn_msg_tye, 5u, 0xe0u);
    dst_p[40] |= pack_right_shift_u16(src_p->adas_posn_offset, 8u, 0x1fu);
    dst_p[41] |= pack_left_shift_u16(src_p->adas_posn_offset, 0u, 0xffu);
    dst_p[42] |= pack_left_shift_u8(src_p->adas_posn_cyc_cnt, 6u, 0xc0u);
    dst_p[42] |= pack_left_shift_u8(src_p->adas_posn_pathldx, 0u, 0x3fu);
    dst_p[43] |= pack_left_shift_u8(src_p->adas_posn_idx, 6u, 0xc0u);
    dst_p[43] |= pack_left_shift_u8(src_p->adas_posn_pos_probb, 1u, 0x3eu);
    dst_p[43] |= pack_right_shift_u16(src_p->adas_posn_age, 8u, 0x01u);
    dst_p[44] |= pack_left_shift_u16(src_p->adas_posn_age, 0u, 0xffu);
    dst_p[45] |= pack_left_shift_u8(src_p->adas_posn_pos_confdc, 4u, 0x70u);
    dst_p[45] |= pack_left_shift_u8(src_p->adas_posn_cur_lane, 1u, 0x0eu);
    dst_p[45] |= pack_right_shift_u16(src_p->adas_posn_spd, 8u, 0x01u);
    dst_p[46] |= pack_left_shift_u16(src_p->adas_posn_spd, 0u, 0xffu);
    dst_p[47] |= pack_left_shift_u8(src_p->adas_posn_rehead, 0u, 0xffu);

    return (64);
}

int b30_001_hut_fd1_unpack(
    struct b30_001_hut_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->intellgntcurve_req = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->ifc_snvty_set = unpack_right_shift_u8(src_p[9], 4u, 0x30u);
    dst_p->lca_swt_req = unpack_right_shift_u8(src_p[10], 5u, 0x20u);
    dst_p->rcta_swt_req = unpack_right_shift_u8(src_p[10], 4u, 0x10u);
    dst_p->rcta_brk_swt_req = unpack_right_shift_u8(src_p[10], 3u, 0x08u);
    dst_p->rcw_swt_req = unpack_right_shift_u8(src_p[10], 2u, 0x04u);
    dst_p->fcw_snvty_set = unpack_right_shift_u8(src_p[10], 0u, 0x03u);
    dst_p->aeb_veh_swt_req = unpack_right_shift_u8(src_p[11], 7u, 0x80u);
    dst_p->lka_swt_req = unpack_right_shift_u8(src_p[11], 5u, 0x20u);
    dst_p->lck_swt_req = unpack_right_shift_u8(src_p[11], 4u, 0x10u);
    dst_p->elk_swt_req = unpack_right_shift_u8(src_p[11], 3u, 0x08u);
    dst_p->ess_ped_swt_req = unpack_right_shift_u8(src_p[11], 2u, 0x04u);
    dst_p->ess_veh_swt_req = unpack_right_shift_u8(src_p[11], 1u, 0x02u);
    dst_p->ldw_swt_req = unpack_right_shift_u8(src_p[11], 0u, 0x01u);
    dst_p->tsr_swt_req = unpack_right_shift_u8(src_p[12], 6u, 0x40u);
    dst_p->tsr_warn_swt_req = unpack_right_shift_u8(src_p[12], 5u, 0x20u);
    dst_p->lss_warn_form_swt_req = unpack_right_shift_u8(src_p[12], 3u, 0x18u);
    dst_p->intelligent_eva_swt_req = unpack_right_shift_u8(src_p[13], 3u, 0x08u);
    dst_p->lss_swt_req = unpack_right_shift_u8(src_p[13], 2u, 0x04u);
    dst_p->aeb_ped_swt_req = unpack_right_shift_u8(src_p[13], 1u, 0x02u);
    dst_p->dow_swt_req = unpack_right_shift_u8(src_p[13], 0u, 0x01u);
    dst_p->ica_hands_off_swt_req = unpack_right_shift_u8(src_p[15], 7u, 0x80u);
    dst_p->isl_swt_req = unpack_right_shift_u8(src_p[15], 6u, 0x40u);
    dst_p->tsr_snvty_set = unpack_right_shift_u8(src_p[15], 1u, 0x3eu);
    dst_p->nav_veh_to_traf_eye_dist = unpack_left_shift_u16(src_p[29], 2u, 0xffu);
    dst_p->nav_veh_to_traf_eye_dist |= unpack_right_shift_u16(src_p[30], 6u, 0xc0u);
    dst_p->nav_spd_lim_value = unpack_right_shift_u8(src_p[33], 2u, 0xfcu);
    dst_p->nav_spd_lim_unit_hut = unpack_right_shift_u8(src_p[33], 0u, 0x03u);
    dst_p->nav_ctry_type = unpack_left_shift_u16(src_p[34], 2u, 0xffu);
    dst_p->nav_ctry_type |= unpack_right_shift_u16(src_p[35], 6u, 0xc0u);
    dst_p->nav_spd_lim_sign_sts = unpack_right_shift_u8(src_p[35], 3u, 0x38u);
    dst_p->hwa_swt_req = unpack_right_shift_u8(src_p[35], 0u, 0x01u);
    dst_p->nav_tsr_traf_sign = unpack_right_shift_u8(src_p[36], 0u, 0xffu);
    dst_p->hwa_snvty_set = unpack_right_shift_u8(src_p[37], 6u, 0xc0u);
    dst_p->fcta_swt_req = unpack_right_shift_u8(src_p[37], 5u, 0x20u);
    dst_p->fcta_brk_swt_req = unpack_right_shift_u8(src_p[37], 4u, 0x10u);
    dst_p->aeb_ja_swt_req = unpack_right_shift_u8(src_p[37], 3u, 0x08u);
    dst_p->aes_swt_req = unpack_right_shift_u8(src_p[37], 2u, 0x04u);
    dst_p->alc_swt_req = unpack_right_shift_u8(src_p[37], 0u, 0x01u);
    dst_p->nav_road_type = unpack_right_shift_u8(src_p[38], 4u, 0xf0u);
    dst_p->nav_spd_lim_type = unpack_right_shift_u8(src_p[38], 2u, 0x0cu);
    dst_p->adas_posn_msg_tye = unpack_right_shift_u8(src_p[40], 5u, 0xe0u);
    dst_p->adas_posn_offset = unpack_left_shift_u16(src_p[40], 8u, 0x1fu);
    dst_p->adas_posn_offset |= unpack_right_shift_u16(src_p[41], 0u, 0xffu);
    dst_p->adas_posn_cyc_cnt = unpack_right_shift_u8(src_p[42], 6u, 0xc0u);
    dst_p->adas_posn_pathldx = unpack_right_shift_u8(src_p[42], 0u, 0x3fu);
    dst_p->adas_posn_idx = unpack_right_shift_u8(src_p[43], 6u, 0xc0u);
    dst_p->adas_posn_pos_probb = unpack_right_shift_u8(src_p[43], 1u, 0x3eu);
    dst_p->adas_posn_age = unpack_left_shift_u16(src_p[43], 8u, 0x01u);
    dst_p->adas_posn_age |= unpack_right_shift_u16(src_p[44], 0u, 0xffu);
    dst_p->adas_posn_pos_confdc = unpack_right_shift_u8(src_p[45], 4u, 0x70u);
    dst_p->adas_posn_cur_lane = unpack_right_shift_u8(src_p[45], 1u, 0x0eu);
    dst_p->adas_posn_spd = unpack_left_shift_u16(src_p[45], 8u, 0x01u);
    dst_p->adas_posn_spd |= unpack_right_shift_u16(src_p[46], 0u, 0xffu);
    dst_p->adas_posn_rehead = unpack_right_shift_u8(src_p[47], 0u, 0xffu);

    return (0);
}

int b30_001_hut_fd1_init(struct b30_001_hut_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut_fd1_t));
    msg_p->intellgntcurve_req = 0.0;
    msg_p->ifc_snvty_set = 0.0;
    msg_p->lca_swt_req = 0.0;
    msg_p->rcta_swt_req = 0.0;
    msg_p->rcta_brk_swt_req = 0.0;
    msg_p->rcw_swt_req = 0.0;
    msg_p->fcw_snvty_set = 0.0;
    msg_p->aeb_veh_swt_req = 1.0;
    msg_p->lka_swt_req = 0.0;
    msg_p->lck_swt_req = 0.0;
    msg_p->elk_swt_req = 0.0;
    msg_p->ess_ped_swt_req = 0.0;
    msg_p->ess_veh_swt_req = 0.0;
    msg_p->ldw_swt_req = 0.0;
    msg_p->tsr_swt_req = 0.0;
    msg_p->tsr_warn_swt_req = 0.0;
    msg_p->lss_warn_form_swt_req = 0.0;
    msg_p->intelligent_eva_swt_req = 0.0;
    msg_p->lss_swt_req = 0.0;
    msg_p->aeb_ped_swt_req = 1.0;
    msg_p->dow_swt_req = 0.0;
    msg_p->ica_hands_off_swt_req = 0.0;
    msg_p->isl_swt_req = 0.0;
    msg_p->nav_veh_to_traf_eye_dist = 0.0;
    msg_p->nav_spd_lim_value = 0.0;
    msg_p->nav_spd_lim_unit_hut = 1.0;
    msg_p->nav_ctry_type = 156.0;
    msg_p->nav_spd_lim_sign_sts = 0.0;
    msg_p->hwa_swt_req = 1.0;
    msg_p->nav_tsr_traf_sign = 0.0;
    msg_p->hwa_snvty_set = 0.0;
    msg_p->fcta_swt_req = 0.0;
    msg_p->fcta_brk_swt_req = 0.0;
    msg_p->aeb_ja_swt_req = 0.0;
    msg_p->aes_swt_req = 0.0;
    msg_p->alc_swt_req = 0.0;
    msg_p->nav_road_type = 0.0;
    msg_p->nav_spd_lim_type = 0.0;
    msg_p->adas_posn_msg_tye = 0.0;
    msg_p->adas_posn_offset = 8191.0;
    msg_p->adas_posn_cyc_cnt = 0.0;
    msg_p->adas_posn_pathldx = 0.0;
    msg_p->adas_posn_idx = 0.0;
    msg_p->adas_posn_pos_probb = 0.0;
    msg_p->adas_posn_age = 0.0;
    msg_p->adas_posn_pos_confdc = 0.0;
    msg_p->adas_posn_cur_lane = 0.0;
    msg_p->adas_posn_spd = 511.0;
    msg_p->adas_posn_rehead = 0.0;

    return 0;
}

uint8_t b30_001_hut_fd1_intellgntcurve_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_intellgntcurve_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_intellgntcurve_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_ifc_snvty_set_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_ifc_snvty_set_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_ifc_snvty_set_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_lca_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_lca_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_lca_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_rcta_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_rcta_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_rcta_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_rcta_brk_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_rcta_brk_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_rcta_brk_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_rcw_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_rcw_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_rcw_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_fcw_snvty_set_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_fcw_snvty_set_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_fcw_snvty_set_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_aeb_veh_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_aeb_veh_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_aeb_veh_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_lka_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_lka_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_lka_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_lck_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_lck_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_lck_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_elk_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_elk_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_elk_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_ess_ped_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_ess_ped_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_ess_ped_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_ess_veh_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_ess_veh_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_ess_veh_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_ldw_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_ldw_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_ldw_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_tsr_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_tsr_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_tsr_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_tsr_warn_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_tsr_warn_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_tsr_warn_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_lss_warn_form_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_lss_warn_form_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_lss_warn_form_swt_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_intelligent_eva_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_intelligent_eva_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_intelligent_eva_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_lss_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_lss_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_lss_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_aeb_ped_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_aeb_ped_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_aeb_ped_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_dow_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_dow_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_dow_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_ica_hands_off_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_ica_hands_off_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_ica_hands_off_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_isl_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_isl_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_isl_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_tsr_snvty_set_encode(double value)
{
    return (uint8_t)(value - -15.0);
}

double b30_001_hut_fd1_tsr_snvty_set_decode(uint8_t value)
{
    return ((double)value + -15.0);
}

bool b30_001_hut_fd1_tsr_snvty_set_is_in_range(uint8_t value)
{
    return (value <= 30u);
}

uint16_t b30_001_hut_fd1_nav_veh_to_traf_eye_dist_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut_fd1_nav_veh_to_traf_eye_dist_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_veh_to_traf_eye_dist_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_hut_fd1_nav_spd_lim_value_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_nav_spd_lim_value_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_spd_lim_value_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut_fd1_nav_spd_lim_unit_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_nav_spd_lim_unit_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_spd_lim_unit_hut_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_hut_fd1_nav_ctry_type_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut_fd1_nav_ctry_type_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_ctry_type_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_hut_fd1_nav_spd_lim_sign_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_nav_spd_lim_sign_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_spd_lim_sign_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd1_hwa_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_hwa_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_hwa_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_nav_tsr_traf_sign_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_nav_tsr_traf_sign_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_tsr_traf_sign_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hut_fd1_hwa_snvty_set_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_hwa_snvty_set_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_hwa_snvty_set_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_fcta_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_fcta_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_fcta_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_fcta_brk_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_fcta_brk_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_fcta_brk_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_aeb_ja_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_aeb_ja_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_aeb_ja_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_aes_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_aes_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_aes_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_alc_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_alc_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_alc_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_fd1_nav_road_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_nav_road_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_road_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut_fd1_nav_spd_lim_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_nav_spd_lim_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_nav_spd_lim_type_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_adas_posn_msg_tye_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_adas_posn_msg_tye_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_msg_tye_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut_fd1_adas_posn_offset_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut_fd1_adas_posn_offset_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_offset_is_in_range(uint16_t value)
{
    return (value <= 8190u);
}

uint8_t b30_001_hut_fd1_adas_posn_cyc_cnt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_adas_posn_cyc_cnt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_cyc_cnt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_adas_posn_pathldx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_adas_posn_pathldx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_pathldx_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut_fd1_adas_posn_idx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_adas_posn_idx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_idx_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd1_adas_posn_pos_probb_encode(double value)
{
    return (uint8_t)(value / 3.33);
}

double b30_001_hut_fd1_adas_posn_pos_probb_decode(uint8_t value)
{
    return ((double)value * 3.33);
}

bool b30_001_hut_fd1_adas_posn_pos_probb_is_in_range(uint8_t value)
{
    return (value <= 30u);
}

uint16_t b30_001_hut_fd1_adas_posn_age_encode(double value)
{
    return (uint16_t)(value / 5.0);
}

double b30_001_hut_fd1_adas_posn_age_decode(uint16_t value)
{
    return ((double)value * 5.0);
}

bool b30_001_hut_fd1_adas_posn_age_is_in_range(uint16_t value)
{
    return (value <= 509u);
}

uint8_t b30_001_hut_fd1_adas_posn_pos_confdc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_adas_posn_pos_confdc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_pos_confdc_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd1_adas_posn_cur_lane_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd1_adas_posn_cur_lane_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd1_adas_posn_cur_lane_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut_fd1_adas_posn_spd_encode(double value)
{
    return (uint16_t)((value - -12.8) / 0.2);
}

double b30_001_hut_fd1_adas_posn_spd_decode(uint16_t value)
{
    return (((double)value * 0.2) + -12.8);
}

bool b30_001_hut_fd1_adas_posn_spd_is_in_range(uint16_t value)
{
    return (value <= 510u);
}

uint8_t b30_001_hut_fd1_adas_posn_rehead_encode(double value)
{
    return (uint8_t)(value / 1.417);
}

double b30_001_hut_fd1_adas_posn_rehead_decode(uint8_t value)
{
    return ((double)value * 1.417);
}

bool b30_001_hut_fd1_adas_posn_rehead_is_in_range(uint8_t value)
{
    return (value <= 253u);
}

int b30_001_hut_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_hut_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->hut_od_obj0_id, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->hut_od_obj0_confidence, 0u, 0x0fu);
    dst_p[2] |= pack_left_shift_u8(src_p->hut_od_obj0_type, 5u, 0xe0u);
    dst_p[2] |= pack_right_shift_u8(src_p->hut_od_obj0_width, 2u, 0x1fu);
    dst_p[3] |= pack_left_shift_u8(src_p->hut_od_obj0_width, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u16(src_p->hut_od_obj0_ground_pos_x, 4u, 0xffu);
    dst_p[5] |= pack_left_shift_u16(src_p->hut_od_obj0_ground_pos_x, 4u, 0xf0u);
    dst_p[5] |= pack_right_shift_u16(src_p->hut_od_obj0_ground_pos_y, 8u, 0x0fu);
    dst_p[6] |= pack_left_shift_u16(src_p->hut_od_obj0_ground_pos_y, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->htu_od_obj1_id, 4u, 0xf0u);
    dst_p[9] |= pack_left_shift_u8(src_p->hut_od_obj1_confidence, 0u, 0x0fu);
    dst_p[10] |= pack_left_shift_u8(src_p->hut_od_obj1_type, 5u, 0xe0u);
    dst_p[10] |= pack_right_shift_u8(src_p->hut_od_obj1_width, 2u, 0x1fu);
    dst_p[11] |= pack_left_shift_u8(src_p->hut_od_obj1_width, 6u, 0xc0u);
    dst_p[12] |= pack_right_shift_u16(src_p->hut_od_obj1_ground_pos_x, 4u, 0xffu);
    dst_p[13] |= pack_left_shift_u16(src_p->hut_od_obj1_ground_pos_x, 4u, 0xf0u);
    dst_p[13] |= pack_right_shift_u16(src_p->hut_od_obj1_ground_pos_y, 8u, 0x0fu);
    dst_p[14] |= pack_left_shift_u16(src_p->hut_od_obj1_ground_pos_y, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->hut_od_obj2_id, 4u, 0xf0u);
    dst_p[17] |= pack_left_shift_u8(src_p->hut_od_obj2_confidence, 0u, 0x0fu);
    dst_p[18] |= pack_left_shift_u8(src_p->hut_od_obj2_type, 5u, 0xe0u);
    dst_p[18] |= pack_right_shift_u8(src_p->hut_od_obj2_width, 2u, 0x1fu);
    dst_p[19] |= pack_left_shift_u8(src_p->hut_od_obj2_width, 6u, 0xc0u);
    dst_p[20] |= pack_right_shift_u16(src_p->hut_od_obj2_ground_pos_x, 4u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->hut_od_obj2_ground_pos_x, 4u, 0xf0u);
    dst_p[21] |= pack_right_shift_u16(src_p->hut_od_obj2_ground_pos_y, 8u, 0x0fu);
    dst_p[22] |= pack_left_shift_u16(src_p->hut_od_obj2_ground_pos_y, 0u, 0xffu);
    dst_p[25] |= pack_left_shift_u8(src_p->hut_od_obj3_id, 4u, 0xf0u);
    dst_p[25] |= pack_left_shift_u8(src_p->hut_od_obj3_confidence, 0u, 0x0fu);
    dst_p[26] |= pack_left_shift_u8(src_p->hut_od_obj3_type, 5u, 0xe0u);
    dst_p[26] |= pack_right_shift_u8(src_p->hut_od_obj3_width, 2u, 0x1fu);
    dst_p[27] |= pack_left_shift_u8(src_p->hut_od_obj3_width, 6u, 0xc0u);
    dst_p[28] |= pack_right_shift_u16(src_p->hut_od_obj3_ground_pos_x, 4u, 0xffu);
    dst_p[29] |= pack_left_shift_u16(src_p->hut_od_obj3_ground_pos_x, 4u, 0xf0u);
    dst_p[29] |= pack_right_shift_u16(src_p->hut_od_obj3_ground_pos_y, 8u, 0x0fu);
    dst_p[30] |= pack_left_shift_u16(src_p->hut_od_obj3_ground_pos_y, 0u, 0xffu);
    dst_p[33] |= pack_left_shift_u8(src_p->hut_od_obj4_id, 4u, 0xf0u);
    dst_p[33] |= pack_left_shift_u8(src_p->hut_od_obj4_confidence, 0u, 0x0fu);
    dst_p[34] |= pack_left_shift_u8(src_p->hut_od_obj4_type, 5u, 0xe0u);
    dst_p[34] |= pack_right_shift_u8(src_p->hut_od_obj4_width, 2u, 0x1fu);
    dst_p[35] |= pack_left_shift_u8(src_p->hut_od_obj4_width, 6u, 0xc0u);
    dst_p[36] |= pack_right_shift_u16(src_p->hut_od_obj4_ground_pos_x, 4u, 0xffu);
    dst_p[37] |= pack_left_shift_u16(src_p->hut_od_obj4_ground_pos_x, 4u, 0xf0u);
    dst_p[37] |= pack_right_shift_u16(src_p->hut_od_obj4_ground_pos_y, 8u, 0x0fu);
    dst_p[38] |= pack_left_shift_u16(src_p->hut_od_obj4_ground_pos_y, 0u, 0xffu);
    dst_p[41] |= pack_left_shift_u8(src_p->hut_od_obj5_id, 4u, 0xf0u);
    dst_p[41] |= pack_left_shift_u8(src_p->hut_od_obj5_confidence, 0u, 0x0fu);
    dst_p[42] |= pack_left_shift_u8(src_p->hut_od_obj5_type, 5u, 0xe0u);
    dst_p[42] |= pack_right_shift_u8(src_p->hut_od_obj5_width, 2u, 0x1fu);
    dst_p[43] |= pack_left_shift_u8(src_p->hut_od_obj5_width, 6u, 0xc0u);
    dst_p[44] |= pack_right_shift_u16(src_p->hut_od_obj5_ground_pos_x, 4u, 0xffu);
    dst_p[45] |= pack_left_shift_u16(src_p->hut_od_obj5_ground_pos_x, 4u, 0xf0u);
    dst_p[45] |= pack_right_shift_u16(src_p->hut_od_obj5_ground_pos_y, 8u, 0x0fu);
    dst_p[46] |= pack_left_shift_u16(src_p->hut_od_obj5_ground_pos_y, 0u, 0xffu);
    dst_p[49] |= pack_left_shift_u8(src_p->hut_od_obj6_id, 4u, 0xf0u);
    dst_p[49] |= pack_left_shift_u8(src_p->hut_od_obj6_confidence, 0u, 0x0fu);
    dst_p[50] |= pack_left_shift_u8(src_p->hut_od_obj6_type, 5u, 0xe0u);
    dst_p[50] |= pack_right_shift_u8(src_p->hut_od_obj6_width, 2u, 0x1fu);
    dst_p[51] |= pack_left_shift_u8(src_p->hut_od_obj6_width, 6u, 0xc0u);
    dst_p[52] |= pack_right_shift_u16(src_p->hut_od_obj6_ground_pos_x, 4u, 0xffu);
    dst_p[53] |= pack_left_shift_u16(src_p->hut_od_obj6_ground_pos_x, 4u, 0xf0u);
    dst_p[53] |= pack_right_shift_u16(src_p->hut_od_obj6_ground_pos_y, 8u, 0x0fu);
    dst_p[54] |= pack_left_shift_u16(src_p->hut_od_obj6_ground_pos_y, 0u, 0xffu);

    return (64);
}

int b30_001_hut_fd2_unpack(
    struct b30_001_hut_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->hut_od_obj0_id = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->hut_od_obj0_confidence = unpack_right_shift_u8(src_p[1], 0u, 0x0fu);
    dst_p->hut_od_obj0_type = unpack_right_shift_u8(src_p[2], 5u, 0xe0u);
    dst_p->hut_od_obj0_width = unpack_left_shift_u8(src_p[2], 2u, 0x1fu);
    dst_p->hut_od_obj0_width |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->hut_od_obj0_ground_pos_x = unpack_left_shift_u16(src_p[4], 4u, 0xffu);
    dst_p->hut_od_obj0_ground_pos_x |= unpack_right_shift_u16(src_p[5], 4u, 0xf0u);
    dst_p->hut_od_obj0_ground_pos_y = unpack_left_shift_u16(src_p[5], 8u, 0x0fu);
    dst_p->hut_od_obj0_ground_pos_y |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->htu_od_obj1_id = unpack_right_shift_u8(src_p[9], 4u, 0xf0u);
    dst_p->hut_od_obj1_confidence = unpack_right_shift_u8(src_p[9], 0u, 0x0fu);
    dst_p->hut_od_obj1_type = unpack_right_shift_u8(src_p[10], 5u, 0xe0u);
    dst_p->hut_od_obj1_width = unpack_left_shift_u8(src_p[10], 2u, 0x1fu);
    dst_p->hut_od_obj1_width |= unpack_right_shift_u8(src_p[11], 6u, 0xc0u);
    dst_p->hut_od_obj1_ground_pos_x = unpack_left_shift_u16(src_p[12], 4u, 0xffu);
    dst_p->hut_od_obj1_ground_pos_x |= unpack_right_shift_u16(src_p[13], 4u, 0xf0u);
    dst_p->hut_od_obj1_ground_pos_y = unpack_left_shift_u16(src_p[13], 8u, 0x0fu);
    dst_p->hut_od_obj1_ground_pos_y |= unpack_right_shift_u16(src_p[14], 0u, 0xffu);
    dst_p->hut_od_obj2_id = unpack_right_shift_u8(src_p[17], 4u, 0xf0u);
    dst_p->hut_od_obj2_confidence = unpack_right_shift_u8(src_p[17], 0u, 0x0fu);
    dst_p->hut_od_obj2_type = unpack_right_shift_u8(src_p[18], 5u, 0xe0u);
    dst_p->hut_od_obj2_width = unpack_left_shift_u8(src_p[18], 2u, 0x1fu);
    dst_p->hut_od_obj2_width |= unpack_right_shift_u8(src_p[19], 6u, 0xc0u);
    dst_p->hut_od_obj2_ground_pos_x = unpack_left_shift_u16(src_p[20], 4u, 0xffu);
    dst_p->hut_od_obj2_ground_pos_x |= unpack_right_shift_u16(src_p[21], 4u, 0xf0u);
    dst_p->hut_od_obj2_ground_pos_y = unpack_left_shift_u16(src_p[21], 8u, 0x0fu);
    dst_p->hut_od_obj2_ground_pos_y |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->hut_od_obj3_id = unpack_right_shift_u8(src_p[25], 4u, 0xf0u);
    dst_p->hut_od_obj3_confidence = unpack_right_shift_u8(src_p[25], 0u, 0x0fu);
    dst_p->hut_od_obj3_type = unpack_right_shift_u8(src_p[26], 5u, 0xe0u);
    dst_p->hut_od_obj3_width = unpack_left_shift_u8(src_p[26], 2u, 0x1fu);
    dst_p->hut_od_obj3_width |= unpack_right_shift_u8(src_p[27], 6u, 0xc0u);
    dst_p->hut_od_obj3_ground_pos_x = unpack_left_shift_u16(src_p[28], 4u, 0xffu);
    dst_p->hut_od_obj3_ground_pos_x |= unpack_right_shift_u16(src_p[29], 4u, 0xf0u);
    dst_p->hut_od_obj3_ground_pos_y = unpack_left_shift_u16(src_p[29], 8u, 0x0fu);
    dst_p->hut_od_obj3_ground_pos_y |= unpack_right_shift_u16(src_p[30], 0u, 0xffu);
    dst_p->hut_od_obj4_id = unpack_right_shift_u8(src_p[33], 4u, 0xf0u);
    dst_p->hut_od_obj4_confidence = unpack_right_shift_u8(src_p[33], 0u, 0x0fu);
    dst_p->hut_od_obj4_type = unpack_right_shift_u8(src_p[34], 5u, 0xe0u);
    dst_p->hut_od_obj4_width = unpack_left_shift_u8(src_p[34], 2u, 0x1fu);
    dst_p->hut_od_obj4_width |= unpack_right_shift_u8(src_p[35], 6u, 0xc0u);
    dst_p->hut_od_obj4_ground_pos_x = unpack_left_shift_u16(src_p[36], 4u, 0xffu);
    dst_p->hut_od_obj4_ground_pos_x |= unpack_right_shift_u16(src_p[37], 4u, 0xf0u);
    dst_p->hut_od_obj4_ground_pos_y = unpack_left_shift_u16(src_p[37], 8u, 0x0fu);
    dst_p->hut_od_obj4_ground_pos_y |= unpack_right_shift_u16(src_p[38], 0u, 0xffu);
    dst_p->hut_od_obj5_id = unpack_right_shift_u8(src_p[41], 4u, 0xf0u);
    dst_p->hut_od_obj5_confidence = unpack_right_shift_u8(src_p[41], 0u, 0x0fu);
    dst_p->hut_od_obj5_type = unpack_right_shift_u8(src_p[42], 5u, 0xe0u);
    dst_p->hut_od_obj5_width = unpack_left_shift_u8(src_p[42], 2u, 0x1fu);
    dst_p->hut_od_obj5_width |= unpack_right_shift_u8(src_p[43], 6u, 0xc0u);
    dst_p->hut_od_obj5_ground_pos_x = unpack_left_shift_u16(src_p[44], 4u, 0xffu);
    dst_p->hut_od_obj5_ground_pos_x |= unpack_right_shift_u16(src_p[45], 4u, 0xf0u);
    dst_p->hut_od_obj5_ground_pos_y = unpack_left_shift_u16(src_p[45], 8u, 0x0fu);
    dst_p->hut_od_obj5_ground_pos_y |= unpack_right_shift_u16(src_p[46], 0u, 0xffu);
    dst_p->hut_od_obj6_id = unpack_right_shift_u8(src_p[49], 4u, 0xf0u);
    dst_p->hut_od_obj6_confidence = unpack_right_shift_u8(src_p[49], 0u, 0x0fu);
    dst_p->hut_od_obj6_type = unpack_right_shift_u8(src_p[50], 5u, 0xe0u);
    dst_p->hut_od_obj6_width = unpack_left_shift_u8(src_p[50], 2u, 0x1fu);
    dst_p->hut_od_obj6_width |= unpack_right_shift_u8(src_p[51], 6u, 0xc0u);
    dst_p->hut_od_obj6_ground_pos_x = unpack_left_shift_u16(src_p[52], 4u, 0xffu);
    dst_p->hut_od_obj6_ground_pos_x |= unpack_right_shift_u16(src_p[53], 4u, 0xf0u);
    dst_p->hut_od_obj6_ground_pos_y = unpack_left_shift_u16(src_p[53], 8u, 0x0fu);
    dst_p->hut_od_obj6_ground_pos_y |= unpack_right_shift_u16(src_p[54], 0u, 0xffu);

    return (0);
}

int b30_001_hut_fd2_init(struct b30_001_hut_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut_fd2_t));
    msg_p->hut_od_obj0_id = 0.0;
    msg_p->hut_od_obj0_confidence = 0.0;
    msg_p->hut_od_obj0_type = 0.0;
    msg_p->hut_od_obj0_width = 0.0;
    msg_p->hut_od_obj0_ground_pos_x = 0.0;
    msg_p->hut_od_obj0_ground_pos_y = 0.0;
    msg_p->htu_od_obj1_id = 0.0;
    msg_p->hut_od_obj1_confidence = 0.0;
    msg_p->hut_od_obj1_type = 0.0;
    msg_p->hut_od_obj1_width = 0.0;
    msg_p->hut_od_obj1_ground_pos_x = 0.0;
    msg_p->hut_od_obj1_ground_pos_y = 0.0;
    msg_p->hut_od_obj2_id = 0.0;
    msg_p->hut_od_obj2_confidence = 0.0;
    msg_p->hut_od_obj2_type = 0.0;
    msg_p->hut_od_obj2_width = 0.0;
    msg_p->hut_od_obj2_ground_pos_x = 0.0;
    msg_p->hut_od_obj2_ground_pos_y = 0.0;
    msg_p->hut_od_obj3_id = 0.0;
    msg_p->hut_od_obj3_confidence = 0.0;
    msg_p->hut_od_obj3_type = 0.0;
    msg_p->hut_od_obj3_width = 0.0;
    msg_p->hut_od_obj3_ground_pos_x = 0.0;
    msg_p->hut_od_obj3_ground_pos_y = 0.0;
    msg_p->hut_od_obj4_id = 0.0;
    msg_p->hut_od_obj4_confidence = 0.0;
    msg_p->hut_od_obj4_type = 0.0;
    msg_p->hut_od_obj4_width = 0.0;
    msg_p->hut_od_obj4_ground_pos_x = 0.0;
    msg_p->hut_od_obj4_ground_pos_y = 0.0;
    msg_p->hut_od_obj5_id = 0.0;
    msg_p->hut_od_obj5_confidence = 0.0;
    msg_p->hut_od_obj5_type = 0.0;
    msg_p->hut_od_obj5_width = 0.0;
    msg_p->hut_od_obj5_ground_pos_x = 0.0;
    msg_p->hut_od_obj5_ground_pos_y = 0.0;
    msg_p->hut_od_obj6_id = 0.0;
    msg_p->hut_od_obj6_confidence = 0.0;
    msg_p->hut_od_obj6_type = 0.0;
    msg_p->hut_od_obj6_width = 0.0;
    msg_p->hut_od_obj6_ground_pos_x = 0.0;
    msg_p->hut_od_obj6_ground_pos_y = 0.0;

    return 0;
}

uint8_t b30_001_hut_fd2_hut_od_obj0_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj0_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj0_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj0_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj0_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj0_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj0_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj0_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj0_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj0_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj0_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj0_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj0_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj0_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj0_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj0_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj0_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj0_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hut_fd2_htu_od_obj1_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_htu_od_obj1_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_htu_od_obj1_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj1_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj1_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj1_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj1_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj1_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj1_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj1_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj1_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj1_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj1_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj1_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj1_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj1_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj1_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj1_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hut_fd2_hut_od_obj2_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj2_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj2_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj2_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj2_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj2_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj2_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj2_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj2_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj2_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj2_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj2_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj2_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj2_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj2_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj2_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj2_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj2_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hut_fd2_hut_od_obj3_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj3_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj3_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj3_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj3_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj3_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj3_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj3_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj3_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj3_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj3_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj3_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj3_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj3_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj3_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj3_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj3_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj3_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hut_fd2_hut_od_obj4_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj4_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj4_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj4_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj4_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj4_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj4_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj4_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj4_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj4_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj4_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj4_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj4_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj4_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj4_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj4_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj4_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj4_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hut_fd2_hut_od_obj5_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj5_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj5_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj5_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj5_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj5_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj5_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj5_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj5_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj5_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj5_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj5_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj5_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj5_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj5_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj5_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj5_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj5_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint8_t b30_001_hut_fd2_hut_od_obj6_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj6_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj6_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd2_hut_od_obj6_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj6_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj6_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd2_hut_od_obj6_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd2_hut_od_obj6_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd2_hut_od_obj6_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd2_hut_od_obj6_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd2_hut_od_obj6_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd2_hut_od_obj6_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd2_hut_od_obj6_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd2_hut_od_obj6_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd2_hut_od_obj6_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd2_hut_od_obj6_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd2_hut_od_obj6_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd2_hut_od_obj6_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

int b30_001_hut_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_hut_fd3_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->hut_od_obj7_id, 4u, 0xf0u);
    dst_p[1] |= pack_left_shift_u8(src_p->hut_od_obj7_confidence, 0u, 0x0fu);
    dst_p[2] |= pack_left_shift_u8(src_p->hut_od_obj7_type, 5u, 0xe0u);
    dst_p[2] |= pack_right_shift_u8(src_p->hut_od_obj7_width, 2u, 0x1fu);
    dst_p[3] |= pack_left_shift_u8(src_p->hut_od_obj7_width, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u16(src_p->hut_od_obj7_ground_pos_x, 4u, 0xffu);
    dst_p[5] |= pack_left_shift_u16(src_p->hut_od_obj7_ground_pos_x, 4u, 0xf0u);
    dst_p[5] |= pack_right_shift_u16(src_p->hut_od_obj7_ground_pos_y, 8u, 0x0fu);
    dst_p[6] |= pack_left_shift_u16(src_p->hut_od_obj7_ground_pos_y, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->hut_od_obj_timestamp, 8u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->hut_od_obj_timestamp, 0u, 0xffu);
    dst_p[11] |= pack_left_shift_u8(src_p->hut_fsd1_distance, 2u, 0xfcu);
    dst_p[11] |= pack_right_shift_u8(src_p->hut_fsd2_distance, 4u, 0x03u);
    dst_p[12] |= pack_left_shift_u8(src_p->hut_fsd2_distance, 4u, 0xf0u);
    dst_p[12] |= pack_right_shift_u8(src_p->hut_fsd3_distance, 2u, 0x0fu);
    dst_p[13] |= pack_left_shift_u8(src_p->hut_fsd3_distance, 6u, 0xc0u);
    dst_p[13] |= pack_left_shift_u8(src_p->hut_fsd4_distance, 0u, 0x3fu);
    dst_p[14] |= pack_left_shift_u8(src_p->hut_fsd5_distance, 2u, 0xfcu);
    dst_p[14] |= pack_left_shift_u8(src_p->hut_od_work_sts, 0u, 0x03u);
    dst_p[17] |= pack_left_shift_u8(src_p->hut_fsd6_distance, 2u, 0xfcu);
    dst_p[17] |= pack_right_shift_u8(src_p->hut_fsd7_distance, 4u, 0x03u);
    dst_p[18] |= pack_left_shift_u8(src_p->hut_fsd7_distance, 4u, 0xf0u);
    dst_p[18] |= pack_right_shift_u8(src_p->hut_fsd8_distance, 2u, 0x0fu);
    dst_p[19] |= pack_left_shift_u8(src_p->hut_fsd8_distance, 6u, 0xc0u);
    dst_p[19] |= pack_left_shift_u8(src_p->hut_fsd9_distance, 0u, 0x3fu);
    dst_p[20] |= pack_left_shift_u8(src_p->hut_fsd10_distance, 2u, 0xfcu);
    dst_p[20] |= pack_right_shift_u8(src_p->hut_fsd11_distance, 4u, 0x03u);
    dst_p[21] |= pack_left_shift_u8(src_p->hut_fsd11_distance, 4u, 0xf0u);
    dst_p[21] |= pack_right_shift_u8(src_p->hut_fsd12_distance, 2u, 0x0fu);
    dst_p[22] |= pack_left_shift_u8(src_p->hut_fsd12_distance, 6u, 0xc0u);
    dst_p[22] |= pack_left_shift_u8(src_p->hut_fsd13_distance, 0u, 0x3fu);
    dst_p[25] |= pack_left_shift_u8(src_p->hut_fsd14_distance, 2u, 0xfcu);
    dst_p[25] |= pack_right_shift_u8(src_p->hut_fsd15_distance, 4u, 0x03u);
    dst_p[26] |= pack_left_shift_u8(src_p->hut_fsd15_distance, 4u, 0xf0u);
    dst_p[26] |= pack_right_shift_u8(src_p->hut_fsd16_distance, 2u, 0x0fu);
    dst_p[27] |= pack_left_shift_u8(src_p->hut_fsd16_distance, 6u, 0xc0u);
    dst_p[27] |= pack_left_shift_u8(src_p->hut_fsd17_distance, 0u, 0x3fu);
    dst_p[28] |= pack_left_shift_u8(src_p->hut_fsd18_distance, 2u, 0xfcu);

    return (64);
}

int b30_001_hut_fd3_unpack(
    struct b30_001_hut_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->hut_od_obj7_id = unpack_right_shift_u8(src_p[1], 4u, 0xf0u);
    dst_p->hut_od_obj7_confidence = unpack_right_shift_u8(src_p[1], 0u, 0x0fu);
    dst_p->hut_od_obj7_type = unpack_right_shift_u8(src_p[2], 5u, 0xe0u);
    dst_p->hut_od_obj7_width = unpack_left_shift_u8(src_p[2], 2u, 0x1fu);
    dst_p->hut_od_obj7_width |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->hut_od_obj7_ground_pos_x = unpack_left_shift_u16(src_p[4], 4u, 0xffu);
    dst_p->hut_od_obj7_ground_pos_x |= unpack_right_shift_u16(src_p[5], 4u, 0xf0u);
    dst_p->hut_od_obj7_ground_pos_y = unpack_left_shift_u16(src_p[5], 8u, 0x0fu);
    dst_p->hut_od_obj7_ground_pos_y |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->hut_od_obj_timestamp = unpack_left_shift_u16(src_p[9], 8u, 0xffu);
    dst_p->hut_od_obj_timestamp |= unpack_right_shift_u16(src_p[10], 0u, 0xffu);
    dst_p->hut_fsd1_distance = unpack_right_shift_u8(src_p[11], 2u, 0xfcu);
    dst_p->hut_fsd2_distance = unpack_left_shift_u8(src_p[11], 4u, 0x03u);
    dst_p->hut_fsd2_distance |= unpack_right_shift_u8(src_p[12], 4u, 0xf0u);
    dst_p->hut_fsd3_distance = unpack_left_shift_u8(src_p[12], 2u, 0x0fu);
    dst_p->hut_fsd3_distance |= unpack_right_shift_u8(src_p[13], 6u, 0xc0u);
    dst_p->hut_fsd4_distance = unpack_right_shift_u8(src_p[13], 0u, 0x3fu);
    dst_p->hut_fsd5_distance = unpack_right_shift_u8(src_p[14], 2u, 0xfcu);
    dst_p->hut_od_work_sts = unpack_right_shift_u8(src_p[14], 0u, 0x03u);
    dst_p->hut_fsd6_distance = unpack_right_shift_u8(src_p[17], 2u, 0xfcu);
    dst_p->hut_fsd7_distance = unpack_left_shift_u8(src_p[17], 4u, 0x03u);
    dst_p->hut_fsd7_distance |= unpack_right_shift_u8(src_p[18], 4u, 0xf0u);
    dst_p->hut_fsd8_distance = unpack_left_shift_u8(src_p[18], 2u, 0x0fu);
    dst_p->hut_fsd8_distance |= unpack_right_shift_u8(src_p[19], 6u, 0xc0u);
    dst_p->hut_fsd9_distance = unpack_right_shift_u8(src_p[19], 0u, 0x3fu);
    dst_p->hut_fsd10_distance = unpack_right_shift_u8(src_p[20], 2u, 0xfcu);
    dst_p->hut_fsd11_distance = unpack_left_shift_u8(src_p[20], 4u, 0x03u);
    dst_p->hut_fsd11_distance |= unpack_right_shift_u8(src_p[21], 4u, 0xf0u);
    dst_p->hut_fsd12_distance = unpack_left_shift_u8(src_p[21], 2u, 0x0fu);
    dst_p->hut_fsd12_distance |= unpack_right_shift_u8(src_p[22], 6u, 0xc0u);
    dst_p->hut_fsd13_distance = unpack_right_shift_u8(src_p[22], 0u, 0x3fu);
    dst_p->hut_fsd14_distance = unpack_right_shift_u8(src_p[25], 2u, 0xfcu);
    dst_p->hut_fsd15_distance = unpack_left_shift_u8(src_p[25], 4u, 0x03u);
    dst_p->hut_fsd15_distance |= unpack_right_shift_u8(src_p[26], 4u, 0xf0u);
    dst_p->hut_fsd16_distance = unpack_left_shift_u8(src_p[26], 2u, 0x0fu);
    dst_p->hut_fsd16_distance |= unpack_right_shift_u8(src_p[27], 6u, 0xc0u);
    dst_p->hut_fsd17_distance = unpack_right_shift_u8(src_p[27], 0u, 0x3fu);
    dst_p->hut_fsd18_distance = unpack_right_shift_u8(src_p[28], 2u, 0xfcu);

    return (0);
}

int b30_001_hut_fd3_init(struct b30_001_hut_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut_fd3_t));
    msg_p->hut_od_obj7_id = 0.0;
    msg_p->hut_od_obj7_confidence = 0.0;
    msg_p->hut_od_obj7_type = 0.0;
    msg_p->hut_od_obj7_width = 0.0;
    msg_p->hut_od_obj7_ground_pos_x = 0.0;
    msg_p->hut_od_obj7_ground_pos_y = 0.0;
    msg_p->hut_od_obj_timestamp = 0.0;
    msg_p->hut_fsd1_distance = 0.0;
    msg_p->hut_fsd2_distance = 0.0;
    msg_p->hut_fsd3_distance = 0.0;
    msg_p->hut_fsd4_distance = 0.0;
    msg_p->hut_fsd5_distance = 0.0;
    msg_p->hut_od_work_sts = 0.0;
    msg_p->hut_fsd6_distance = 0.0;
    msg_p->hut_fsd7_distance = 0.0;
    msg_p->hut_fsd8_distance = 0.0;
    msg_p->hut_fsd9_distance = 0.0;
    msg_p->hut_fsd10_distance = 0.0;
    msg_p->hut_fsd11_distance = 0.0;
    msg_p->hut_fsd12_distance = 0.0;
    msg_p->hut_fsd13_distance = 0.0;
    msg_p->hut_fsd14_distance = 0.0;
    msg_p->hut_fsd15_distance = 0.0;
    msg_p->hut_fsd16_distance = 0.0;
    msg_p->hut_fsd17_distance = 0.0;
    msg_p->hut_fsd18_distance = 0.0;

    return 0;
}

uint8_t b30_001_hut_fd3_hut_od_obj7_id_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd3_hut_od_obj7_id_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd3_hut_od_obj7_id_is_in_range(uint8_t value)
{
    return (value <= 9u);
}

uint8_t b30_001_hut_fd3_hut_od_obj7_confidence_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_od_obj7_confidence_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_od_obj7_confidence_is_in_range(uint8_t value)
{
    return (value <= 10u);
}

uint8_t b30_001_hut_fd3_hut_od_obj7_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd3_hut_od_obj7_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd3_hut_od_obj7_type_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut_fd3_hut_od_obj7_width_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_od_obj7_width_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_od_obj7_width_is_in_range(uint8_t value)
{
    return (value <= 126u);
}

uint16_t b30_001_hut_fd3_hut_od_obj7_ground_pos_x_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_hut_fd3_hut_od_obj7_ground_pos_x_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_hut_fd3_hut_od_obj7_ground_pos_x_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd3_hut_od_obj7_ground_pos_y_encode(double value)
{
    return (uint16_t)((value - -20.0) / 0.01);
}

double b30_001_hut_fd3_hut_od_obj7_ground_pos_y_decode(uint16_t value)
{
    return (((double)value * 0.01) + -20.0);
}

bool b30_001_hut_fd3_hut_od_obj7_ground_pos_y_is_in_range(uint16_t value)
{
    return (value <= 4000u);
}

uint16_t b30_001_hut_fd3_hut_od_obj_timestamp_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut_fd3_hut_od_obj_timestamp_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd3_hut_od_obj_timestamp_is_in_range(uint16_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hut_fd3_hut_fsd1_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd1_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd1_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd2_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd2_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd2_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd3_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd3_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd3_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd4_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd4_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd4_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd5_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd5_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd5_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_od_work_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd3_hut_od_work_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd3_hut_od_work_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut_fd3_hut_fsd6_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd6_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd6_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd7_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd7_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd7_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd8_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd8_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd8_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd9_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd9_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd9_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd10_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd10_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd10_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd11_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd11_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd11_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd12_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd12_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd12_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd13_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd13_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd13_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd14_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd14_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd14_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd15_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd15_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd15_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd16_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd16_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd16_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd17_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd17_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd17_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

uint8_t b30_001_hut_fd3_hut_fsd18_distance_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_hut_fd3_hut_fsd18_distance_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_fd3_hut_fsd18_distance_is_in_range(uint8_t value)
{
    return (value <= 60u);
}

int b30_001_hut_fd4_pack(
    uint8_t *dst_p,
    const struct b30_001_hut_fd4_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[4] |= pack_left_shift_u8(src_p->slot_num_vr, 0u, 0x0fu);

    return (64);
}

int b30_001_hut_fd4_unpack(
    struct b30_001_hut_fd4_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->slot_num_vr = unpack_right_shift_u8(src_p[4], 0u, 0x0fu);

    return (0);
}

int b30_001_hut_fd4_init(struct b30_001_hut_fd4_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut_fd4_t));
    msg_p->slot_num_vr = 0.0;

    return 0;
}

uint8_t b30_001_hut_fd4_slot_num_vr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_fd4_slot_num_vr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_fd4_slot_num_vr_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_hut_ip2_pack(
    uint8_t *dst_p,
    const struct b30_001_hut_ip2_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[1] |= pack_right_shift_u32(src_p->ip_veh_tot_distance, 16u, 0xffu);
    dst_p[2] |= pack_right_shift_u32(src_p->ip_veh_tot_distance, 8u, 0xffu);
    dst_p[3] |= pack_left_shift_u32(src_p->ip_veh_tot_distance, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->ip_acc_err, 7u, 0x80u);
    dst_p[5] |= pack_left_shift_u8(src_p->ip_veh_tot_distance_valid, 6u, 0x40u);
    dst_p[6] |= pack_left_shift_u8(src_p->ip_veh_spd_unit, 5u, 0x20u);
    dst_p[6] |= pack_left_shift_u8(src_p->ip_err, 4u, 0x10u);

    return (16);
}

int b30_001_hut_ip2_unpack(
    struct b30_001_hut_ip2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->ip_veh_tot_distance = unpack_left_shift_u32(src_p[1], 16u, 0xffu);
    dst_p->ip_veh_tot_distance |= unpack_left_shift_u32(src_p[2], 8u, 0xffu);
    dst_p->ip_veh_tot_distance |= unpack_right_shift_u32(src_p[3], 0u, 0xffu);
    dst_p->ip_acc_err = unpack_right_shift_u8(src_p[5], 7u, 0x80u);
    dst_p->ip_veh_tot_distance_valid = unpack_right_shift_u8(src_p[5], 6u, 0x40u);
    dst_p->ip_veh_spd_unit = unpack_right_shift_u8(src_p[6], 5u, 0x20u);
    dst_p->ip_err = unpack_right_shift_u8(src_p[6], 4u, 0x10u);

    return (0);
}

int b30_001_hut_ip2_init(struct b30_001_hut_ip2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut_ip2_t));
    msg_p->ip_veh_tot_distance = 0.0;
    msg_p->ip_acc_err = 0.0;
    msg_p->ip_veh_tot_distance_valid = 0.0;
    msg_p->ip_veh_spd_unit = 0.0;
    msg_p->ip_err = 0.0;

    return 0;
}

uint32_t b30_001_hut_ip2_ip_veh_tot_distance_encode(double value)
{
    return (uint32_t)(value / 0.1);
}

double b30_001_hut_ip2_ip_veh_tot_distance_decode(uint32_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_hut_ip2_ip_veh_tot_distance_is_in_range(uint32_t value)
{
    return (value <= 9999999u);
}

uint8_t b30_001_hut_ip2_ip_acc_err_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_ip2_ip_acc_err_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_ip2_ip_acc_err_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_ip2_ip_veh_tot_distance_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_ip2_ip_veh_tot_distance_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_ip2_ip_veh_tot_distance_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_ip2_ip_veh_spd_unit_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_ip2_ip_veh_spd_unit_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_ip2_ip_veh_spd_unit_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut_ip2_ip_err_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut_ip2_ip_err_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut_ip2_ip_err_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hut15_pack(
    uint8_t *dst_p,
    const struct b30_001_hut15_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[4] |= pack_left_shift_u8(src_p->sdw_swt_set, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->aps_prkg_typ_seln, 1u, 0x06u);
    dst_p[6] |= pack_left_shift_u8(src_p->aps_swt_req_vr, 6u, 0xc0u);

    return (16);
}

int b30_001_hut15_unpack(
    struct b30_001_hut15_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->sdw_swt_set = unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->aps_prkg_typ_seln = unpack_right_shift_u8(src_p[4], 1u, 0x06u);
    dst_p->aps_swt_req_vr = unpack_right_shift_u8(src_p[6], 6u, 0xc0u);

    return (0);
}

int b30_001_hut15_init(struct b30_001_hut15_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut15_t));
    msg_p->sdw_swt_set = 0.0;
    msg_p->aps_prkg_typ_seln = 0.0;
    msg_p->aps_swt_req_vr = 0.0;

    return 0;
}

uint8_t b30_001_hut15_sdw_swt_set_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut15_sdw_swt_set_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut15_sdw_swt_set_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut15_aps_prkg_typ_seln_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut15_aps_prkg_typ_seln_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut15_aps_prkg_typ_seln_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut15_aps_swt_req_vr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut15_aps_swt_req_vr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut15_aps_swt_req_vr_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

int b30_001_hut19_pack(
    uint8_t *dst_p,
    const struct b30_001_hut19_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->adas_meta_msg_typ, 5u, 0xe0u);
    dst_p[0] |= pack_left_shift_u8(src_p->adas_meta_map_provider, 2u, 0x1cu);
    dst_p[0] |= pack_right_shift_u16(src_p->adas_meta_country_code, 8u, 0x03u);
    dst_p[1] |= pack_left_shift_u16(src_p->adas_meta_country_code, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_meta_cyc_cnt, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_meta_prot_ver_major, 4u, 0x30u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_meta_prot_ver_minor_sub, 1u, 0x0eu);
    dst_p[2] |= pack_right_shift_u16(src_p->adas_meta_hw_ver, 8u, 0x01u);
    dst_p[3] |= pack_left_shift_u16(src_p->adas_meta_hw_ver, 0u, 0xffu);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_meta_drv_side, 7u, 0x80u);
    dst_p[4] |= pack_right_shift_u16(src_p->adas_meta_region_code, 8u, 0x7fu);
    dst_p[5] |= pack_left_shift_u16(src_p->adas_meta_region_code, 0u, 0xffu);
    dst_p[6] |= pack_left_shift_u8(src_p->adas_meta_map_ver_qtr, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->adas_meta_map_ver_year, 0u, 0x3fu);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_meta_spd_units, 4u, 0x10u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_meta_prot_ver_minor, 0u, 0x0fu);

    return (8);
}

int b30_001_hut19_unpack(
    struct b30_001_hut19_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->adas_meta_msg_typ = unpack_right_shift_u8(src_p[0], 5u, 0xe0u);
    dst_p->adas_meta_map_provider = unpack_right_shift_u8(src_p[0], 2u, 0x1cu);
    dst_p->adas_meta_country_code = unpack_left_shift_u16(src_p[0], 8u, 0x03u);
    dst_p->adas_meta_country_code |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->adas_meta_cyc_cnt = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->adas_meta_prot_ver_major = unpack_right_shift_u8(src_p[2], 4u, 0x30u);
    dst_p->adas_meta_prot_ver_minor_sub = unpack_right_shift_u8(src_p[2], 1u, 0x0eu);
    dst_p->adas_meta_hw_ver = unpack_left_shift_u16(src_p[2], 8u, 0x01u);
    dst_p->adas_meta_hw_ver |= unpack_right_shift_u16(src_p[3], 0u, 0xffu);
    dst_p->adas_meta_drv_side = unpack_right_shift_u8(src_p[4], 7u, 0x80u);
    dst_p->adas_meta_region_code = unpack_left_shift_u16(src_p[4], 8u, 0x7fu);
    dst_p->adas_meta_region_code |= unpack_right_shift_u16(src_p[5], 0u, 0xffu);
    dst_p->adas_meta_map_ver_qtr = unpack_right_shift_u8(src_p[6], 6u, 0xc0u);
    dst_p->adas_meta_map_ver_year = unpack_right_shift_u8(src_p[6], 0u, 0x3fu);
    dst_p->adas_meta_spd_units = unpack_right_shift_u8(src_p[7], 4u, 0x10u);
    dst_p->adas_meta_prot_ver_minor = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_hut19_init(struct b30_001_hut19_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut19_t));
    msg_p->adas_meta_msg_typ = 0.0;
    msg_p->adas_meta_map_provider = 0.0;
    msg_p->adas_meta_country_code = 0.0;
    msg_p->adas_meta_cyc_cnt = 0.0;
    msg_p->adas_meta_prot_ver_major = 0.0;
    msg_p->adas_meta_prot_ver_minor_sub = 0.0;
    msg_p->adas_meta_hw_ver = 0.0;
    msg_p->adas_meta_drv_side = 1.0;
    msg_p->adas_meta_region_code = 0.0;
    msg_p->adas_meta_map_ver_qtr = 0.0;
    msg_p->adas_meta_map_ver_year = 0.0;
    msg_p->adas_meta_spd_units = 0.0;
    msg_p->adas_meta_prot_ver_minor = 0.0;

    return 0;
}

uint8_t b30_001_hut19_adas_meta_msg_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_msg_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_msg_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut19_adas_meta_map_provider_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_map_provider_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_map_provider_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut19_adas_meta_country_code_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut19_adas_meta_country_code_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_country_code_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_hut19_adas_meta_cyc_cnt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_cyc_cnt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_cyc_cnt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut19_adas_meta_prot_ver_major_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_prot_ver_major_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_prot_ver_major_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut19_adas_meta_prot_ver_minor_sub_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_prot_ver_minor_sub_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_prot_ver_minor_sub_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut19_adas_meta_hw_ver_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut19_adas_meta_hw_ver_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_hw_ver_is_in_range(uint16_t value)
{
    return (value <= 511u);
}

uint8_t b30_001_hut19_adas_meta_drv_side_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_drv_side_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_drv_side_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_hut19_adas_meta_region_code_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut19_adas_meta_region_code_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_region_code_is_in_range(uint16_t value)
{
    return (value <= 32767u);
}

uint8_t b30_001_hut19_adas_meta_map_ver_qtr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_map_ver_qtr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_map_ver_qtr_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut19_adas_meta_map_ver_year_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_map_ver_year_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_map_ver_year_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut19_adas_meta_spd_units_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_spd_units_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_spd_units_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut19_adas_meta_prot_ver_minor_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut19_adas_meta_prot_ver_minor_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut19_adas_meta_prot_ver_minor_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_hut20_pack(
    uint8_t *dst_p,
    const struct b30_001_hut20_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->adas_prof_long_msg_typ, 5u, 0xe0u);
    dst_p[0] |= pack_right_shift_u16(src_p->adas_prof_long_offset, 8u, 0x1fu);
    dst_p[1] |= pack_left_shift_u16(src_p->adas_prof_long_offset, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_prof_long_cyc_cnt, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_prof_long_path_idx, 0u, 0x3fu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_long_prof_typ, 3u, 0xf8u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_long_ctrl_point, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_long_retr, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_long_update, 0u, 0x01u);
    dst_p[4] |= pack_right_shift_u32(src_p->adas_prof_long_value, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u32(src_p->adas_prof_long_value, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u32(src_p->adas_prof_long_value, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u32(src_p->adas_prof_long_value, 0u, 0xffu);

    return (8);
}

int b30_001_hut20_unpack(
    struct b30_001_hut20_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->adas_prof_long_msg_typ = unpack_right_shift_u8(src_p[0], 5u, 0xe0u);
    dst_p->adas_prof_long_offset = unpack_left_shift_u16(src_p[0], 8u, 0x1fu);
    dst_p->adas_prof_long_offset |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->adas_prof_long_cyc_cnt = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->adas_prof_long_path_idx = unpack_right_shift_u8(src_p[2], 0u, 0x3fu);
    dst_p->adas_prof_long_prof_typ = unpack_right_shift_u8(src_p[3], 3u, 0xf8u);
    dst_p->adas_prof_long_ctrl_point = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->adas_prof_long_retr = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->adas_prof_long_update = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->adas_prof_long_value = unpack_left_shift_u32(src_p[4], 24u, 0xffu);
    dst_p->adas_prof_long_value |= unpack_left_shift_u32(src_p[5], 16u, 0xffu);
    dst_p->adas_prof_long_value |= unpack_left_shift_u32(src_p[6], 8u, 0xffu);
    dst_p->adas_prof_long_value |= unpack_right_shift_u32(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_hut20_init(struct b30_001_hut20_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut20_t));
    msg_p->adas_prof_long_msg_typ = 0.0;
    msg_p->adas_prof_long_offset = 0.0;
    msg_p->adas_prof_long_cyc_cnt = 0.0;
    msg_p->adas_prof_long_path_idx = 0.0;
    msg_p->adas_prof_long_prof_typ = 0.0;
    msg_p->adas_prof_long_ctrl_point = 0.0;
    msg_p->adas_prof_long_retr = 0.0;
    msg_p->adas_prof_long_update = 0.0;
    msg_p->adas_prof_long_value = 0.0;

    return 0;
}

uint8_t b30_001_hut20_adas_prof_long_msg_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_msg_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_msg_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut20_adas_prof_long_offset_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut20_adas_prof_long_offset_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_offset_is_in_range(uint16_t value)
{
    return (value <= 8190u);
}

uint8_t b30_001_hut20_adas_prof_long_cyc_cnt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_cyc_cnt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_cyc_cnt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut20_adas_prof_long_path_idx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_path_idx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_path_idx_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut20_adas_prof_long_prof_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_prof_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_prof_typ_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_hut20_adas_prof_long_ctrl_point_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_ctrl_point_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_ctrl_point_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut20_adas_prof_long_retr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_retr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_retr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut20_adas_prof_long_update_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut20_adas_prof_long_update_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_update_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint32_t b30_001_hut20_adas_prof_long_value_encode(double value)
{
    return (uint32_t)(value);
}

double b30_001_hut20_adas_prof_long_value_decode(uint32_t value)
{
    return ((double)value);
}

bool b30_001_hut20_adas_prof_long_value_is_in_range(uint32_t value)
{
    (void)value;

    return (true);
}

int b30_001_hut21_pack(
    uint8_t *dst_p,
    const struct b30_001_hut21_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->adas_prof_short_msg_typ, 5u, 0xe0u);
    dst_p[0] |= pack_right_shift_u16(src_p->adas_prof_short_offset, 8u, 0x1fu);
    dst_p[1] |= pack_left_shift_u16(src_p->adas_prof_short_offset, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_prof_short_cyc_cnt, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_prof_short_path_idx, 0u, 0x3fu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_short_prof_typ, 3u, 0xf8u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_short_ctrl_point, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_short_retr, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_prof_short_update, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_prof_short_accur_class, 6u, 0xc0u);
    dst_p[4] |= pack_right_shift_u16(src_p->adas_prof_short_dist1, 4u, 0x3fu);
    dst_p[5] |= pack_left_shift_u16(src_p->adas_prof_short_dist1, 4u, 0xf0u);
    dst_p[5] |= pack_right_shift_u16(src_p->adas_prof_short_value0, 6u, 0x0fu);
    dst_p[6] |= pack_left_shift_u16(src_p->adas_prof_short_value0, 2u, 0xfcu);
    dst_p[6] |= pack_right_shift_u16(src_p->adas_prof_short_value1, 8u, 0x03u);
    dst_p[7] |= pack_left_shift_u16(src_p->adas_prof_short_value1, 0u, 0xffu);

    return (8);
}

int b30_001_hut21_unpack(
    struct b30_001_hut21_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->adas_prof_short_msg_typ = unpack_right_shift_u8(src_p[0], 5u, 0xe0u);
    dst_p->adas_prof_short_offset = unpack_left_shift_u16(src_p[0], 8u, 0x1fu);
    dst_p->adas_prof_short_offset |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->adas_prof_short_cyc_cnt = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->adas_prof_short_path_idx = unpack_right_shift_u8(src_p[2], 0u, 0x3fu);
    dst_p->adas_prof_short_prof_typ = unpack_right_shift_u8(src_p[3], 3u, 0xf8u);
    dst_p->adas_prof_short_ctrl_point = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->adas_prof_short_retr = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->adas_prof_short_update = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->adas_prof_short_accur_class = unpack_right_shift_u8(src_p[4], 6u, 0xc0u);
    dst_p->adas_prof_short_dist1 = unpack_left_shift_u16(src_p[4], 4u, 0x3fu);
    dst_p->adas_prof_short_dist1 |= unpack_right_shift_u16(src_p[5], 4u, 0xf0u);
    dst_p->adas_prof_short_value0 = unpack_left_shift_u16(src_p[5], 6u, 0x0fu);
    dst_p->adas_prof_short_value0 |= unpack_right_shift_u16(src_p[6], 2u, 0xfcu);
    dst_p->adas_prof_short_value1 = unpack_left_shift_u16(src_p[6], 8u, 0x03u);
    dst_p->adas_prof_short_value1 |= unpack_right_shift_u16(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_hut21_init(struct b30_001_hut21_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut21_t));
    msg_p->adas_prof_short_msg_typ = 0.0;
    msg_p->adas_prof_short_offset = 0.0;
    msg_p->adas_prof_short_cyc_cnt = 0.0;
    msg_p->adas_prof_short_path_idx = 0.0;
    msg_p->adas_prof_short_prof_typ = 0.0;
    msg_p->adas_prof_short_ctrl_point = 0.0;
    msg_p->adas_prof_short_retr = 0.0;
    msg_p->adas_prof_short_update = 0.0;
    msg_p->adas_prof_short_accur_class = 3.0;
    msg_p->adas_prof_short_dist1 = 0.0;
    msg_p->adas_prof_short_value0 = 0.0;
    msg_p->adas_prof_short_value1 = 0.0;

    return 0;
}

uint8_t b30_001_hut21_adas_prof_short_msg_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_msg_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_msg_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut21_adas_prof_short_offset_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut21_adas_prof_short_offset_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_offset_is_in_range(uint16_t value)
{
    return (value <= 8190u);
}

uint8_t b30_001_hut21_adas_prof_short_cyc_cnt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_cyc_cnt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_cyc_cnt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut21_adas_prof_short_path_idx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_path_idx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_path_idx_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut21_adas_prof_short_prof_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_prof_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_prof_typ_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_hut21_adas_prof_short_ctrl_point_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_ctrl_point_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_ctrl_point_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut21_adas_prof_short_retr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_retr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_retr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut21_adas_prof_short_update_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_update_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_update_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut21_adas_prof_short_accur_class_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut21_adas_prof_short_accur_class_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_accur_class_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_hut21_adas_prof_short_dist1_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut21_adas_prof_short_dist1_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_dist1_is_in_range(uint16_t value)
{
    return (value <= 1022u);
}

uint16_t b30_001_hut21_adas_prof_short_value0_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut21_adas_prof_short_value0_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_value0_is_in_range(uint16_t value)
{
    return (value <= 1022u);
}

uint16_t b30_001_hut21_adas_prof_short_value1_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut21_adas_prof_short_value1_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut21_adas_prof_short_value1_is_in_range(uint16_t value)
{
    return (value <= 1022u);
}

int b30_001_hut22_pack(
    uint8_t *dst_p,
    const struct b30_001_hut22_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->adas_seg_msg_typ, 5u, 0xe0u);
    dst_p[0] |= pack_right_shift_u16(src_p->adas_seg_offset, 8u, 0x1fu);
    dst_p[1] |= pack_left_shift_u16(src_p->adas_seg_offset, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_seg_cyc_cnt, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_seg_path_idx, 0u, 0x3fu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_seg_tunnel, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_seg_brdg, 4u, 0x30u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_seg_build_up_area, 2u, 0x0cu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_seg_retr, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_seg_update, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_seg_rel_probb, 3u, 0xf8u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_seg_func_road_class, 0u, 0x07u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_seg_part_of_calc_route, 6u, 0xc0u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_seg_cmplx_insct, 4u, 0x30u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_seg_form_of_way, 0u, 0x0fu);
    dst_p[6] |= pack_left_shift_u8(src_p->adas_seg_eff_spd_lmt, 3u, 0xf8u);
    dst_p[6] |= pack_left_shift_u8(src_p->adas_seg_eff_spd_lmt_typ, 0u, 0x07u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_seg_divide_road, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_seg_num_of_lane_opp_dir, 3u, 0x18u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_seg_num_of_lane_drv_dir, 0u, 0x07u);

    return (8);
}

int b30_001_hut22_unpack(
    struct b30_001_hut22_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->adas_seg_msg_typ = unpack_right_shift_u8(src_p[0], 5u, 0xe0u);
    dst_p->adas_seg_offset = unpack_left_shift_u16(src_p[0], 8u, 0x1fu);
    dst_p->adas_seg_offset |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->adas_seg_cyc_cnt = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->adas_seg_path_idx = unpack_right_shift_u8(src_p[2], 0u, 0x3fu);
    dst_p->adas_seg_tunnel = unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->adas_seg_brdg = unpack_right_shift_u8(src_p[3], 4u, 0x30u);
    dst_p->adas_seg_build_up_area = unpack_right_shift_u8(src_p[3], 2u, 0x0cu);
    dst_p->adas_seg_retr = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->adas_seg_update = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->adas_seg_rel_probb = unpack_right_shift_u8(src_p[4], 3u, 0xf8u);
    dst_p->adas_seg_func_road_class = unpack_right_shift_u8(src_p[4], 0u, 0x07u);
    dst_p->adas_seg_part_of_calc_route = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->adas_seg_cmplx_insct = unpack_right_shift_u8(src_p[5], 4u, 0x30u);
    dst_p->adas_seg_form_of_way = unpack_right_shift_u8(src_p[5], 0u, 0x0fu);
    dst_p->adas_seg_eff_spd_lmt = unpack_right_shift_u8(src_p[6], 3u, 0xf8u);
    dst_p->adas_seg_eff_spd_lmt_typ = unpack_right_shift_u8(src_p[6], 0u, 0x07u);
    dst_p->adas_seg_divide_road = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->adas_seg_num_of_lane_opp_dir = unpack_right_shift_u8(src_p[7], 3u, 0x18u);
    dst_p->adas_seg_num_of_lane_drv_dir = unpack_right_shift_u8(src_p[7], 0u, 0x07u);

    return (0);
}

int b30_001_hut22_init(struct b30_001_hut22_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut22_t));
    msg_p->adas_seg_msg_typ = 0.0;
    msg_p->adas_seg_offset = 0.0;
    msg_p->adas_seg_cyc_cnt = 0.0;
    msg_p->adas_seg_path_idx = 0.0;
    msg_p->adas_seg_tunnel = 0.0;
    msg_p->adas_seg_brdg = 0.0;
    msg_p->adas_seg_build_up_area = 0.0;
    msg_p->adas_seg_retr = 0.0;
    msg_p->adas_seg_update = 0.0;
    msg_p->adas_seg_rel_probb = 0.0;
    msg_p->adas_seg_func_road_class = 0.0;
    msg_p->adas_seg_part_of_calc_route = 0.0;
    msg_p->adas_seg_cmplx_insct = 0.0;
    msg_p->adas_seg_form_of_way = 0.0;
    msg_p->adas_seg_eff_spd_lmt = 0.0;
    msg_p->adas_seg_eff_spd_lmt_typ = 0.0;
    msg_p->adas_seg_divide_road = 0.0;
    msg_p->adas_seg_num_of_lane_opp_dir = 0.0;
    msg_p->adas_seg_num_of_lane_drv_dir = 0.0;

    return 0;
}

uint8_t b30_001_hut22_adas_seg_msg_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_msg_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_msg_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut22_adas_seg_offset_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut22_adas_seg_offset_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_offset_is_in_range(uint16_t value)
{
    return (value <= 8190u);
}

uint8_t b30_001_hut22_adas_seg_cyc_cnt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_cyc_cnt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_cyc_cnt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_path_idx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_path_idx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_path_idx_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut22_adas_seg_tunnel_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_tunnel_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_tunnel_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_brdg_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_brdg_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_brdg_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_build_up_area_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_build_up_area_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_build_up_area_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_retr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_retr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_retr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut22_adas_seg_update_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_update_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_update_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut22_adas_seg_rel_probb_encode(double value)
{
    return (uint8_t)(value / 3.33);
}

double b30_001_hut22_adas_seg_rel_probb_decode(uint8_t value)
{
    return ((double)value * 3.33);
}

bool b30_001_hut22_adas_seg_rel_probb_is_in_range(uint8_t value)
{
    return (value <= 30u);
}

uint8_t b30_001_hut22_adas_seg_func_road_class_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_func_road_class_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_func_road_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut22_adas_seg_part_of_calc_route_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_part_of_calc_route_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_part_of_calc_route_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_cmplx_insct_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_cmplx_insct_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_cmplx_insct_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_form_of_way_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_form_of_way_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_form_of_way_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut22_adas_seg_eff_spd_lmt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_eff_spd_lmt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_eff_spd_lmt_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_hut22_adas_seg_eff_spd_lmt_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_eff_spd_lmt_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_eff_spd_lmt_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut22_adas_seg_divide_road_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_divide_road_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_divide_road_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_num_of_lane_opp_dir_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_num_of_lane_opp_dir_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_num_of_lane_opp_dir_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut22_adas_seg_num_of_lane_drv_dir_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut22_adas_seg_num_of_lane_drv_dir_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut22_adas_seg_num_of_lane_drv_dir_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_hut23_pack(
    uint8_t *dst_p,
    const struct b30_001_hut23_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->adas_stub_msg_typ, 5u, 0xe0u);
    dst_p[0] |= pack_right_shift_u16(src_p->adas_stub_offset, 8u, 0x1fu);
    dst_p[1] |= pack_left_shift_u16(src_p->adas_stub_offset, 0u, 0xffu);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_stub_cyc_cnt, 6u, 0xc0u);
    dst_p[2] |= pack_left_shift_u8(src_p->adas_stub_path_idx, 0u, 0x3fu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_stub_stub_path_idx, 2u, 0xfcu);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_stub_retr, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->adas_stub_update, 0u, 0x01u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_stub_rel_probb, 3u, 0xf8u);
    dst_p[4] |= pack_left_shift_u8(src_p->adas_stub_func_road_class, 0u, 0x07u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_stub_part_of_calc_route, 6u, 0xc0u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_stub_cmplx_insct, 4u, 0x30u);
    dst_p[5] |= pack_left_shift_u8(src_p->adas_stub_form_of_way, 0u, 0x0fu);
    dst_p[6] |= pack_left_shift_u8(src_p->adas_stub_turn_angl, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_stub_last_stub, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_stub_rt_of_way, 5u, 0x60u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_stub_num_of_lane_opp_dir, 3u, 0x18u);
    dst_p[7] |= pack_left_shift_u8(src_p->adas_stub_num_of_lane_drv_dir, 0u, 0x07u);

    return (8);
}

int b30_001_hut23_unpack(
    struct b30_001_hut23_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->adas_stub_msg_typ = unpack_right_shift_u8(src_p[0], 5u, 0xe0u);
    dst_p->adas_stub_offset = unpack_left_shift_u16(src_p[0], 8u, 0x1fu);
    dst_p->adas_stub_offset |= unpack_right_shift_u16(src_p[1], 0u, 0xffu);
    dst_p->adas_stub_cyc_cnt = unpack_right_shift_u8(src_p[2], 6u, 0xc0u);
    dst_p->adas_stub_path_idx = unpack_right_shift_u8(src_p[2], 0u, 0x3fu);
    dst_p->adas_stub_stub_path_idx = unpack_right_shift_u8(src_p[3], 2u, 0xfcu);
    dst_p->adas_stub_retr = unpack_right_shift_u8(src_p[3], 1u, 0x02u);
    dst_p->adas_stub_update = unpack_right_shift_u8(src_p[3], 0u, 0x01u);
    dst_p->adas_stub_rel_probb = unpack_right_shift_u8(src_p[4], 3u, 0xf8u);
    dst_p->adas_stub_func_road_class = unpack_right_shift_u8(src_p[4], 0u, 0x07u);
    dst_p->adas_stub_part_of_calc_route = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->adas_stub_cmplx_insct = unpack_right_shift_u8(src_p[5], 4u, 0x30u);
    dst_p->adas_stub_form_of_way = unpack_right_shift_u8(src_p[5], 0u, 0x0fu);
    dst_p->adas_stub_turn_angl = unpack_right_shift_u8(src_p[6], 0u, 0xffu);
    dst_p->adas_stub_last_stub = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->adas_stub_rt_of_way = unpack_right_shift_u8(src_p[7], 5u, 0x60u);
    dst_p->adas_stub_num_of_lane_opp_dir = unpack_right_shift_u8(src_p[7], 3u, 0x18u);
    dst_p->adas_stub_num_of_lane_drv_dir = unpack_right_shift_u8(src_p[7], 0u, 0x07u);

    return (0);
}

int b30_001_hut23_init(struct b30_001_hut23_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut23_t));
    msg_p->adas_stub_msg_typ = 0.0;
    msg_p->adas_stub_offset = 0.0;
    msg_p->adas_stub_cyc_cnt = 0.0;
    msg_p->adas_stub_path_idx = 0.0;
    msg_p->adas_stub_stub_path_idx = 0.0;
    msg_p->adas_stub_retr = 0.0;
    msg_p->adas_stub_update = 0.0;
    msg_p->adas_stub_rel_probb = 0.0;
    msg_p->adas_stub_func_road_class = 0.0;
    msg_p->adas_stub_part_of_calc_route = 0.0;
    msg_p->adas_stub_cmplx_insct = 0.0;
    msg_p->adas_stub_form_of_way = 0.0;
    msg_p->adas_stub_turn_angl = 0.0;
    msg_p->adas_stub_last_stub = 0.0;
    msg_p->adas_stub_rt_of_way = 0.0;
    msg_p->adas_stub_num_of_lane_opp_dir = 0.0;
    msg_p->adas_stub_num_of_lane_drv_dir = 0.0;

    return 0;
}

uint8_t b30_001_hut23_adas_stub_msg_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_msg_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_msg_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_hut23_adas_stub_offset_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut23_adas_stub_offset_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_offset_is_in_range(uint16_t value)
{
    return (value <= 8190u);
}

uint8_t b30_001_hut23_adas_stub_cyc_cnt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_cyc_cnt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_cyc_cnt_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut23_adas_stub_path_idx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_path_idx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_path_idx_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut23_adas_stub_stub_path_idx_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_stub_path_idx_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_stub_path_idx_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut23_adas_stub_retr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_retr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_retr_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut23_adas_stub_update_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_update_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_update_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut23_adas_stub_rel_probb_encode(double value)
{
    return (uint8_t)(value / 3.33);
}

double b30_001_hut23_adas_stub_rel_probb_decode(uint8_t value)
{
    return ((double)value * 3.33);
}

bool b30_001_hut23_adas_stub_rel_probb_is_in_range(uint8_t value)
{
    return (value <= 30u);
}

uint8_t b30_001_hut23_adas_stub_func_road_class_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_func_road_class_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_func_road_class_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut23_adas_stub_part_of_calc_route_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_part_of_calc_route_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_part_of_calc_route_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut23_adas_stub_cmplx_insct_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_cmplx_insct_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_cmplx_insct_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut23_adas_stub_form_of_way_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_form_of_way_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_form_of_way_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut23_adas_stub_turn_angl_encode(double value)
{
    return (uint8_t)(value / 1.417);
}

double b30_001_hut23_adas_stub_turn_angl_decode(uint8_t value)
{
    return ((double)value * 1.417);
}

bool b30_001_hut23_adas_stub_turn_angl_is_in_range(uint8_t value)
{
    return (value <= 253u);
}

uint8_t b30_001_hut23_adas_stub_last_stub_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_last_stub_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_last_stub_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut23_adas_stub_rt_of_way_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_rt_of_way_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_rt_of_way_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut23_adas_stub_num_of_lane_opp_dir_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_num_of_lane_opp_dir_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_num_of_lane_opp_dir_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut23_adas_stub_num_of_lane_drv_dir_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut23_adas_stub_num_of_lane_drv_dir_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut23_adas_stub_num_of_lane_drv_dir_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

int b30_001_hut30_pack(
    uint8_t *dst_p,
    const struct b30_001_hut30_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->back_req_avm, 5u, 0x20u);

    return (8);
}

int b30_001_hut30_unpack(
    struct b30_001_hut30_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->back_req_avm = unpack_right_shift_u8(src_p[1], 5u, 0x20u);

    return (0);
}

int b30_001_hut30_init(struct b30_001_hut30_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut30_t));
    msg_p->back_req_avm = 0.0;

    return 0;
}

uint8_t b30_001_hut30_back_req_avm_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut30_back_req_avm_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut30_back_req_avm_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hut32_pack(
    uint8_t *dst_p,
    const struct b30_001_hut32_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_hut32, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->contn_prkg_req, 6u, 0xc0u);
    dst_p[1] |= pack_left_shift_u8(src_p->prkg_ctrl_mod_req, 4u, 0x30u);
    dst_p[1] |= pack_left_shift_u8(src_p->prk_straight_swt_req_hut, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->prkg_ctrl_mod_req_valid, 2u, 0x04u);
    dst_p[1] |= pack_left_shift_u8(src_p->det_video_lost, 1u, 0x02u);
    dst_p[1] |= pack_left_shift_u8(src_p->contn_prkg_req_valid, 0u, 0x01u);
    dst_p[2] |= pack_right_shift_u16(src_p->x_lvl, 3u, 0xffu);
    dst_p[3] |= pack_left_shift_u16(src_p->x_lvl, 5u, 0xe0u);
    dst_p[3] |= pack_left_shift_u8(src_p->prk_straight_suspend_or_finish_req_hut, 3u, 0x18u);
    dst_p[3] |= pack_right_shift_u16(src_p->y_lvl, 8u, 0x07u);
    dst_p[4] |= pack_left_shift_u16(src_p->y_lvl, 0u, 0xffu);
    dst_p[5] |= pack_left_shift_u8(src_p->scrn_op_sts, 6u, 0xc0u);
    dst_p[5] |= pack_left_shift_u8(src_p->prk_straight_strt_req_hut, 5u, 0x20u);
    dst_p[5] |= pack_left_shift_u8(src_p->prk_straight_veh_strt_req_hut_valid, 4u, 0x10u);
    dst_p[6] |= pack_left_shift_u8(src_p->prk_straight_continue_req_hut, 7u, 0x80u);
    dst_p[6] |= pack_left_shift_u8(src_p->rain_mode_swt_req, 3u, 0x08u);
    dst_p[6] |= pack_left_shift_u8(src_p->lc_mode_swt_req, 1u, 0x06u);
    dst_p[6] |= pack_left_shift_u8(src_p->nav_dec_swt_req, 0u, 0x01u);
    dst_p[7] |= pack_left_shift_u8(src_p->prk_straight_mod_sel_hut, 5u, 0xe0u);
    dst_p[7] |= pack_left_shift_u8(src_p->prk_straight_sts_hut, 4u, 0x10u);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_hut32, 0u, 0x0fu);

    return (8);
}

int b30_001_hut32_unpack(
    struct b30_001_hut32_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_hut32 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->contn_prkg_req = unpack_right_shift_u8(src_p[1], 6u, 0xc0u);
    dst_p->prkg_ctrl_mod_req = unpack_right_shift_u8(src_p[1], 4u, 0x30u);
    dst_p->prk_straight_swt_req_hut = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->prkg_ctrl_mod_req_valid = unpack_right_shift_u8(src_p[1], 2u, 0x04u);
    dst_p->det_video_lost = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->contn_prkg_req_valid = unpack_right_shift_u8(src_p[1], 0u, 0x01u);
    dst_p->x_lvl = unpack_left_shift_u16(src_p[2], 3u, 0xffu);
    dst_p->x_lvl |= unpack_right_shift_u16(src_p[3], 5u, 0xe0u);
    dst_p->prk_straight_suspend_or_finish_req_hut = unpack_right_shift_u8(src_p[3], 3u, 0x18u);
    dst_p->y_lvl = unpack_left_shift_u16(src_p[3], 8u, 0x07u);
    dst_p->y_lvl |= unpack_right_shift_u16(src_p[4], 0u, 0xffu);
    dst_p->scrn_op_sts = unpack_right_shift_u8(src_p[5], 6u, 0xc0u);
    dst_p->prk_straight_strt_req_hut = unpack_right_shift_u8(src_p[5], 5u, 0x20u);
    dst_p->prk_straight_veh_strt_req_hut_valid = unpack_right_shift_u8(src_p[5], 4u, 0x10u);
    dst_p->prk_straight_continue_req_hut = unpack_right_shift_u8(src_p[6], 7u, 0x80u);
    dst_p->rain_mode_swt_req = unpack_right_shift_u8(src_p[6], 3u, 0x08u);
    dst_p->lc_mode_swt_req = unpack_right_shift_u8(src_p[6], 1u, 0x06u);
    dst_p->nav_dec_swt_req = unpack_right_shift_u8(src_p[6], 0u, 0x01u);
    dst_p->prk_straight_mod_sel_hut = unpack_right_shift_u8(src_p[7], 5u, 0xe0u);
    dst_p->prk_straight_sts_hut = unpack_right_shift_u8(src_p[7], 4u, 0x10u);
    dst_p->rolling_counter_hut32 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_hut32_init(struct b30_001_hut32_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut32_t));
    msg_p->check_sum_hut32 = 0.0;
    msg_p->contn_prkg_req = 0.0;
    msg_p->prkg_ctrl_mod_req = 0.0;
    msg_p->prk_straight_swt_req_hut = 0.0;
    msg_p->prkg_ctrl_mod_req_valid = 0.0;
    msg_p->det_video_lost = 0.0;
    msg_p->contn_prkg_req_valid = 0.0;
    msg_p->x_lvl = 2047.0;
    msg_p->prk_straight_suspend_or_finish_req_hut = 0.0;
    msg_p->y_lvl = 2047.0;
    msg_p->scrn_op_sts = 0.0;
    msg_p->prk_straight_strt_req_hut = 0.0;
    msg_p->prk_straight_veh_strt_req_hut_valid = 0.0;
    msg_p->prk_straight_continue_req_hut = 0.0;
    msg_p->rain_mode_swt_req = 0.0;
    msg_p->lc_mode_swt_req = 0.0;
    msg_p->nav_dec_swt_req = 0.0;
    msg_p->prk_straight_mod_sel_hut = 0.0;
    msg_p->prk_straight_sts_hut = 0.0;
    msg_p->rolling_counter_hut32 = 0.0;

    return 0;
}

uint8_t b30_001_hut32_check_sum_hut32_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_check_sum_hut32_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_check_sum_hut32_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_hut32_contn_prkg_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_contn_prkg_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_contn_prkg_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut32_prkg_ctrl_mod_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prkg_ctrl_mod_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prkg_ctrl_mod_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut32_prk_straight_swt_req_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_swt_req_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_swt_req_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_prkg_ctrl_mod_req_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prkg_ctrl_mod_req_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prkg_ctrl_mod_req_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_det_video_lost_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_det_video_lost_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_det_video_lost_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_contn_prkg_req_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_contn_prkg_req_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_contn_prkg_req_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_hut32_x_lvl_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut32_x_lvl_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut32_x_lvl_is_in_range(uint16_t value)
{
    return (value <= 2046u);
}

uint8_t b30_001_hut32_prk_straight_suspend_or_finish_req_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_suspend_or_finish_req_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_suspend_or_finish_req_hut_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint16_t b30_001_hut32_y_lvl_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_hut32_y_lvl_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_hut32_y_lvl_is_in_range(uint16_t value)
{
    return (value <= 2046u);
}

uint8_t b30_001_hut32_scrn_op_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_scrn_op_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_scrn_op_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut32_prk_straight_strt_req_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_strt_req_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_strt_req_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_prk_straight_veh_strt_req_hut_valid_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_veh_strt_req_hut_valid_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_veh_strt_req_hut_valid_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_prk_straight_continue_req_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_continue_req_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_continue_req_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_rain_mode_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_rain_mode_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_rain_mode_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_lc_mode_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_lc_mode_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_lc_mode_swt_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut32_nav_dec_swt_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_nav_dec_swt_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_nav_dec_swt_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_prk_straight_mod_sel_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_mod_sel_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_mod_sel_hut_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut32_prk_straight_sts_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_prk_straight_sts_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_prk_straight_sts_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut32_rolling_counter_hut32_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut32_rolling_counter_hut32_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut32_rolling_counter_hut32_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_hut33_pack(
    uint8_t *dst_p,
    const struct b30_001_hut33_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->prk_in_dir_choice, 3u, 0x18u);
    dst_p[2] |= pack_left_shift_u8(src_p->sel_prk_out_dir_req, 5u, 0xe0u);
    dst_p[2] |= pack_left_shift_u8(src_p->back_req_aps, 4u, 0x10u);
    dst_p[2] |= pack_left_shift_u8(src_p->park_mdl_cmd, 3u, 0x08u);
    dst_p[2] |= pack_left_shift_u8(src_p->path_lrng_start_cmd, 2u, 0x04u);
    dst_p[2] |= pack_left_shift_u8(src_p->path_lrng_finsh_cmd, 1u, 0x02u);
    dst_p[3] |= pack_left_shift_u8(src_p->sel_prkg_fctn_cmd, 5u, 0xe0u);
    dst_p[3] |= pack_left_shift_u8(src_p->delete_path1_cmd, 4u, 0x10u);
    dst_p[3] |= pack_left_shift_u8(src_p->start_prkg_path1_cmd, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->delete_path2_cmd, 2u, 0x04u);
    dst_p[3] |= pack_left_shift_u8(src_p->start_prkg_path2_cmd, 1u, 0x02u);

    return (8);
}

int b30_001_hut33_unpack(
    struct b30_001_hut33_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->prk_in_dir_choice = unpack_right_shift_u8(src_p[1], 3u, 0x18u);
    dst_p->sel_prk_out_dir_req = unpack_right_shift_u8(src_p[2], 5u, 0xe0u);
    dst_p->back_req_aps = unpack_right_shift_u8(src_p[2], 4u, 0x10u);
    dst_p->park_mdl_cmd = unpack_right_shift_u8(src_p[2], 3u, 0x08u);
    dst_p->path_lrng_start_cmd = unpack_right_shift_u8(src_p[2], 2u, 0x04u);
    dst_p->path_lrng_finsh_cmd = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->sel_prkg_fctn_cmd = unpack_right_shift_u8(src_p[3], 5u, 0xe0u);
    dst_p->delete_path1_cmd = unpack_right_shift_u8(src_p[3], 4u, 0x10u);
    dst_p->start_prkg_path1_cmd = unpack_right_shift_u8(src_p[3], 3u, 0x08u);
    dst_p->delete_path2_cmd = unpack_right_shift_u8(src_p[3], 2u, 0x04u);
    dst_p->start_prkg_path2_cmd = unpack_right_shift_u8(src_p[3], 1u, 0x02u);

    return (0);
}

int b30_001_hut33_init(struct b30_001_hut33_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut33_t));
    msg_p->prk_in_dir_choice = 0.0;
    msg_p->sel_prk_out_dir_req = 0.0;
    msg_p->back_req_aps = 0.0;
    msg_p->park_mdl_cmd = 0.0;
    msg_p->path_lrng_start_cmd = 0.0;
    msg_p->path_lrng_finsh_cmd = 0.0;
    msg_p->sel_prkg_fctn_cmd = 0.0;
    msg_p->delete_path1_cmd = 0.0;
    msg_p->start_prkg_path1_cmd = 0.0;
    msg_p->delete_path2_cmd = 0.0;
    msg_p->start_prkg_path2_cmd = 0.0;

    return 0;
}

uint8_t b30_001_hut33_prk_in_dir_choice_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_prk_in_dir_choice_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_prk_in_dir_choice_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_hut33_sel_prk_out_dir_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_sel_prk_out_dir_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_sel_prk_out_dir_req_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut33_back_req_aps_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_back_req_aps_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_back_req_aps_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_park_mdl_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_park_mdl_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_park_mdl_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_path_lrng_start_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_path_lrng_start_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_path_lrng_start_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_path_lrng_finsh_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_path_lrng_finsh_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_path_lrng_finsh_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_sel_prkg_fctn_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_sel_prkg_fctn_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_sel_prkg_fctn_cmd_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_hut33_delete_path1_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_delete_path1_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_delete_path1_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_start_prkg_path1_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_start_prkg_path1_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_start_prkg_path1_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_delete_path2_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_delete_path2_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_delete_path2_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut33_start_prkg_path2_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut33_start_prkg_path2_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut33_start_prkg_path2_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hut34_pack(
    uint8_t *dst_p,
    const struct b30_001_hut34_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->time_hour, 3u, 0xf8u);
    dst_p[2] |= pack_left_shift_u8(src_p->time_minutes, 2u, 0xfcu);
    dst_p[2] |= pack_left_shift_u8(src_p->time_indcn, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->time_mod, 0u, 0x01u);
    dst_p[3] |= pack_left_shift_u8(src_p->time_second, 2u, 0xfcu);
    dst_p[4] |= pack_left_shift_u8(src_p->time_year_left, 4u, 0xf0u);
    dst_p[4] |= pack_left_shift_u8(src_p->time_year_right, 0u, 0x0fu);
    dst_p[5] |= pack_left_shift_u8(src_p->time_month, 4u, 0xf0u);
    dst_p[6] |= pack_left_shift_u8(src_p->time_day, 3u, 0xf8u);

    return (8);
}

int b30_001_hut34_unpack(
    struct b30_001_hut34_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->time_hour = unpack_right_shift_u8(src_p[1], 3u, 0xf8u);
    dst_p->time_minutes = unpack_right_shift_u8(src_p[2], 2u, 0xfcu);
    dst_p->time_indcn = unpack_right_shift_u8(src_p[2], 1u, 0x02u);
    dst_p->time_mod = unpack_right_shift_u8(src_p[2], 0u, 0x01u);
    dst_p->time_second = unpack_right_shift_u8(src_p[3], 2u, 0xfcu);
    dst_p->time_year_left = unpack_right_shift_u8(src_p[4], 4u, 0xf0u);
    dst_p->time_year_right = unpack_right_shift_u8(src_p[4], 0u, 0x0fu);
    dst_p->time_month = unpack_right_shift_u8(src_p[5], 4u, 0xf0u);
    dst_p->time_day = unpack_right_shift_u8(src_p[6], 3u, 0xf8u);

    return (0);
}

int b30_001_hut34_init(struct b30_001_hut34_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut34_t));
    msg_p->time_hour = 31.0;
    msg_p->time_minutes = 63.0;
    msg_p->time_indcn = 0.0;
    msg_p->time_mod = 0.0;
    msg_p->time_second = 63.0;
    msg_p->time_year_left = 15.0;
    msg_p->time_year_right = 15.0;
    msg_p->time_month = 0.0;
    msg_p->time_day = 0.0;

    return 0;
}

uint8_t b30_001_hut34_time_hour_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_hour_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_hour_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_hut34_time_minutes_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_minutes_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_minutes_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut34_time_indcn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_indcn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_indcn_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut34_time_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_mod_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut34_time_second_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_second_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_second_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hut34_time_year_left_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_year_left_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_year_left_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut34_time_year_right_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_year_right_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_year_right_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut34_time_month_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_month_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_month_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut34_time_day_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut34_time_day_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut34_time_day_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

int b30_001_hut44_pack(
    uint8_t *dst_p,
    const struct b30_001_hut44_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->frnt_fog_lmp_swt_sts_hut, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->low_beam_swt_sts_hut, 1u, 0x02u);
    dst_p[2] |= pack_left_shift_u8(src_p->auto_lmp_swt_sts_hut, 7u, 0x80u);

    return (8);
}

int b30_001_hut44_unpack(
    struct b30_001_hut44_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->frnt_fog_lmp_swt_sts_hut = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->low_beam_swt_sts_hut = unpack_right_shift_u8(src_p[1], 1u, 0x02u);
    dst_p->auto_lmp_swt_sts_hut = unpack_right_shift_u8(src_p[2], 7u, 0x80u);

    return (0);
}

int b30_001_hut44_init(struct b30_001_hut44_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut44_t));
    msg_p->frnt_fog_lmp_swt_sts_hut = 0.0;
    msg_p->low_beam_swt_sts_hut = 0.0;
    msg_p->auto_lmp_swt_sts_hut = 0.0;

    return 0;
}

uint8_t b30_001_hut44_frnt_fog_lmp_swt_sts_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut44_frnt_fog_lmp_swt_sts_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut44_frnt_fog_lmp_swt_sts_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut44_low_beam_swt_sts_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut44_low_beam_swt_sts_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut44_low_beam_swt_sts_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut44_auto_lmp_swt_sts_hut_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut44_auto_lmp_swt_sts_hut_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut44_auto_lmp_swt_sts_hut_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hut6_pack(
    uint8_t *dst_p,
    const struct b30_001_hut6_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->guid_ovl_display_cmd, 7u, 0x80u);
    dst_p[4] |= pack_left_shift_u8(src_p->sgl_view_sel, 1u, 0x1eu);
    dst_p[5] |= pack_left_shift_u8(src_p->lane_cal_actvt_cmd, 2u, 0x04u);
    dst_p[5] |= pack_left_shift_u8(src_p->radar_disp_cmd, 0u, 0x01u);
    dst_p[6] |= pack_left_shift_u8(src_p->auto_view_chg_cmd, 7u, 0x80u);
    dst_p[6] |= pack_left_shift_u8(src_p->mdl_colr_chg_cmd, 5u, 0x20u);
    dst_p[6] |= pack_left_shift_u8(src_p->car_mdl_trsprcy_swt_cmd, 1u, 0x02u);
    dst_p[7] |= pack_left_shift_u8(src_p->car_mdl_disp_cmd, 7u, 0x80u);
    dst_p[7] |= pack_left_shift_u8(src_p->mod_chg_req, 6u, 0x40u);
    dst_p[7] |= pack_left_shift_u8(src_p->meb_swt_set, 5u, 0x20u);
    dst_p[7] |= pack_left_shift_u8(src_p->fpas_auto_mod_swt, 4u, 0x10u);
    dst_p[7] |= pack_left_shift_u8(src_p->view_softswitch_cmd, 3u, 0x08u);
    dst_p[7] |= pack_left_shift_u8(src_p->sw_to_field_cal_rst_cmd, 2u, 0x04u);
    dst_p[7] |= pack_left_shift_u8(src_p->auto_avm_sw_set_cmd, 1u, 0x02u);
    dst_p[7] |= pack_left_shift_u8(src_p->wsh_soft_swt, 0u, 0x01u);

    return (8);
}

int b30_001_hut6_unpack(
    struct b30_001_hut6_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->guid_ovl_display_cmd = unpack_right_shift_u8(src_p[0], 7u, 0x80u);
    dst_p->sgl_view_sel = unpack_right_shift_u8(src_p[4], 1u, 0x1eu);
    dst_p->lane_cal_actvt_cmd = unpack_right_shift_u8(src_p[5], 2u, 0x04u);
    dst_p->radar_disp_cmd = unpack_right_shift_u8(src_p[5], 0u, 0x01u);
    dst_p->auto_view_chg_cmd = unpack_right_shift_u8(src_p[6], 7u, 0x80u);
    dst_p->mdl_colr_chg_cmd = unpack_right_shift_u8(src_p[6], 5u, 0x20u);
    dst_p->car_mdl_trsprcy_swt_cmd = unpack_right_shift_u8(src_p[6], 1u, 0x02u);
    dst_p->car_mdl_disp_cmd = unpack_right_shift_u8(src_p[7], 7u, 0x80u);
    dst_p->mod_chg_req = unpack_right_shift_u8(src_p[7], 6u, 0x40u);
    dst_p->meb_swt_set = unpack_right_shift_u8(src_p[7], 5u, 0x20u);
    dst_p->fpas_auto_mod_swt = unpack_right_shift_u8(src_p[7], 4u, 0x10u);
    dst_p->view_softswitch_cmd = unpack_right_shift_u8(src_p[7], 3u, 0x08u);
    dst_p->sw_to_field_cal_rst_cmd = unpack_right_shift_u8(src_p[7], 2u, 0x04u);
    dst_p->auto_avm_sw_set_cmd = unpack_right_shift_u8(src_p[7], 1u, 0x02u);
    dst_p->wsh_soft_swt = unpack_right_shift_u8(src_p[7], 0u, 0x01u);

    return (0);
}

int b30_001_hut6_init(struct b30_001_hut6_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hut6_t));
    msg_p->guid_ovl_display_cmd = 0.0;
    msg_p->sgl_view_sel = 0.0;
    msg_p->lane_cal_actvt_cmd = 0.0;
    msg_p->radar_disp_cmd = 0.0;
    msg_p->auto_view_chg_cmd = 0.0;
    msg_p->mdl_colr_chg_cmd = 0.0;
    msg_p->car_mdl_trsprcy_swt_cmd = 0.0;
    msg_p->car_mdl_disp_cmd = 0.0;
    msg_p->mod_chg_req = 0.0;
    msg_p->meb_swt_set = 0.0;
    msg_p->fpas_auto_mod_swt = 0.0;
    msg_p->view_softswitch_cmd = 0.0;
    msg_p->sw_to_field_cal_rst_cmd = 0.0;
    msg_p->auto_avm_sw_set_cmd = 0.0;
    msg_p->wsh_soft_swt = 0.0;

    return 0;
}

uint8_t b30_001_hut6_guid_ovl_display_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_guid_ovl_display_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_guid_ovl_display_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_sgl_view_sel_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_sgl_view_sel_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_sgl_view_sel_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_hut6_lane_cal_actvt_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_lane_cal_actvt_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_lane_cal_actvt_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_radar_disp_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_radar_disp_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_radar_disp_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_auto_view_chg_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_auto_view_chg_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_auto_view_chg_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_mdl_colr_chg_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_mdl_colr_chg_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_mdl_colr_chg_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_car_mdl_trsprcy_swt_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_car_mdl_trsprcy_swt_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_car_mdl_trsprcy_swt_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_car_mdl_disp_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_car_mdl_disp_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_car_mdl_disp_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_mod_chg_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_mod_chg_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_mod_chg_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_meb_swt_set_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_meb_swt_set_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_meb_swt_set_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_fpas_auto_mod_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_fpas_auto_mod_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_fpas_auto_mod_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_view_softswitch_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_view_softswitch_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_view_softswitch_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_sw_to_field_cal_rst_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_sw_to_field_cal_rst_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_sw_to_field_cal_rst_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_auto_avm_sw_set_cmd_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_auto_avm_sw_set_cmd_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_auto_avm_sw_set_cmd_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_hut6_wsh_soft_swt_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hut6_wsh_soft_swt_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hut6_wsh_soft_swt_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_ibc_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_ibc_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[6] |= pack_left_shift_u8(src_p->pushrod_stauts, 2u, 0x0cu);

    return (64);
}

int b30_001_ibc_fd1_unpack(
    struct b30_001_ibc_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->pushrod_stauts = unpack_right_shift_u8(src_p[6], 2u, 0x0cu);

    return (0);
}

int b30_001_ibc_fd1_init(struct b30_001_ibc_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ibc_fd1_t));
    msg_p->pushrod_stauts = 0.0;

    return 0;
}

uint8_t b30_001_ibc_fd1_pushrod_stauts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ibc_fd1_pushrod_stauts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ibc_fd1_pushrod_stauts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

int b30_001_ibc1_pack(
    uint8_t *dst_p,
    const struct b30_001_ibc1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->check_sum_ibc_fd1_1, 0u, 0xffu);
    dst_p[4] |= pack_left_shift_u8(src_p->inp_rod_stk_sts, 0u, 0x01u);
    dst_p[5] |= pack_right_shift_u16(src_p->inp_rod_stk, 2u, 0xffu);
    dst_p[6] |= pack_left_shift_u16(src_p->inp_rod_stk, 6u, 0xc0u);
    dst_p[6] |= pack_left_shift_u8(src_p->pushrod_stauts, 2u, 0x0cu);
    dst_p[7] |= pack_left_shift_u8(src_p->rolling_counter_ibc_fd1_1, 0u, 0x0fu);

    return (8);
}

int b30_001_ibc1_unpack(
    struct b30_001_ibc1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->check_sum_ibc_fd1_1 = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->inp_rod_stk_sts = unpack_right_shift_u8(src_p[4], 0u, 0x01u);
    dst_p->inp_rod_stk = unpack_left_shift_u16(src_p[5], 2u, 0xffu);
    dst_p->inp_rod_stk |= unpack_right_shift_u16(src_p[6], 6u, 0xc0u);
    dst_p->pushrod_stauts = unpack_right_shift_u8(src_p[6], 2u, 0x0cu);
    dst_p->rolling_counter_ibc_fd1_1 = unpack_right_shift_u8(src_p[7], 0u, 0x0fu);

    return (0);
}

int b30_001_ibc1_init(struct b30_001_ibc1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ibc1_t));
    msg_p->check_sum_ibc_fd1_1 = 0.0;
    msg_p->inp_rod_stk_sts = 0.0;
    msg_p->inp_rod_stk = 0.0;
    msg_p->pushrod_stauts = 0.0;
    msg_p->rolling_counter_ibc_fd1_1 = 0.0;

    return 0;
}

uint8_t b30_001_ibc1_check_sum_ibc_fd1_1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ibc1_check_sum_ibc_fd1_1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ibc1_check_sum_ibc_fd1_1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ibc1_inp_rod_stk_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ibc1_inp_rod_stk_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ibc1_inp_rod_stk_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_ibc1_inp_rod_stk_encode(double value)
{
    return (uint16_t)((value - -5.0) / 0.05);
}

double b30_001_ibc1_inp_rod_stk_decode(uint16_t value)
{
    return (((double)value * 0.05) + -5.0);
}

bool b30_001_ibc1_inp_rod_stk_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_ibc1_pushrod_stauts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ibc1_pushrod_stauts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ibc1_pushrod_stauts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ibc1_rolling_counter_ibc_fd1_1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ibc1_rolling_counter_ibc_fd1_1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ibc1_rolling_counter_ibc_fd1_1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_i_booster_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_i_booster_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->ib_brk_pedal_appld, 3u, 0x08u);
    dst_p[1] |= pack_left_shift_u8(src_p->ib_brk_pedal_appld_vld, 1u, 0x06u);

    return (64);
}

int b30_001_i_booster_fd2_unpack(
    struct b30_001_i_booster_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->ib_brk_pedal_appld = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->ib_brk_pedal_appld_vld = unpack_right_shift_u8(src_p[1], 1u, 0x06u);

    return (0);
}

int b30_001_i_booster_fd2_init(struct b30_001_i_booster_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_i_booster_fd2_t));
    msg_p->ib_brk_pedal_appld = 0.0;
    msg_p->ib_brk_pedal_appld_vld = 0.0;

    return 0;
}

uint8_t b30_001_i_booster_fd2_ib_brk_pedal_appld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_i_booster_fd2_ib_brk_pedal_appld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_i_booster_fd2_ib_brk_pedal_appld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_i_booster_fd2_ib_brk_pedal_appld_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_i_booster_fd2_ib_brk_pedal_appld_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_i_booster_fd2_ib_brk_pedal_appld_vld_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

int b30_001_ifc_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_ifc1, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->ifc_trq_ovl_cmd_protn_value, 6u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->ifc_trq_ovl_cmd_protn_value, 2u, 0xfcu);
    dst_p[12] |= pack_right_shift_u16(src_p->ifc_trq_ovl_cmd_req_value, 3u, 0xffu);
    dst_p[13] |= pack_left_shift_u16(src_p->ifc_trq_ovl_cmd_req_value, 5u, 0xe0u);
    dst_p[13] |= pack_left_shift_u8(src_p->ifc_vibration_warning, 0u, 0x03u);
    dst_p[15] |= pack_left_shift_u8(src_p->ifc_func_trq_cmd_req_flag, 5u, 0xe0u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_ifc1, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_ifc2, 0u, 0xffu);
    dst_p[17] |= pack_right_shift_u16(src_p->ifc_ang_cmd_req_value, 6u, 0xffu);
    dst_p[18] |= pack_left_shift_u16(src_p->ifc_ang_cmd_req_value, 2u, 0xfcu);
    dst_p[19] |= pack_right_shift_u16(src_p->ifc_ang_cmd_req_protn_value, 6u, 0xffu);
    dst_p[20] |= pack_left_shift_u16(src_p->ifc_ang_cmd_req_protn_value, 2u, 0xfcu);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_ifc2, 0u, 0x0fu);

    return (64);
}

int b30_001_ifc_fd1_unpack(
    struct b30_001_ifc_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_ifc1 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->ifc_trq_ovl_cmd_protn_value = unpack_left_shift_u16(src_p[9], 6u, 0xffu);
    dst_p->ifc_trq_ovl_cmd_protn_value |= unpack_right_shift_u16(src_p[10], 2u, 0xfcu);
    dst_p->ifc_trq_ovl_cmd_req_value = unpack_left_shift_u16(src_p[12], 3u, 0xffu);
    dst_p->ifc_trq_ovl_cmd_req_value |= unpack_right_shift_u16(src_p[13], 5u, 0xe0u);
    dst_p->ifc_vibration_warning = unpack_right_shift_u8(src_p[13], 0u, 0x03u);
    dst_p->ifc_func_trq_cmd_req_flag = unpack_right_shift_u8(src_p[15], 5u, 0xe0u);
    dst_p->rolling_counter_ifc1 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_ifc2 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->ifc_ang_cmd_req_value = unpack_left_shift_u16(src_p[17], 6u, 0xffu);
    dst_p->ifc_ang_cmd_req_value |= unpack_right_shift_u16(src_p[18], 2u, 0xfcu);
    dst_p->ifc_ang_cmd_req_protn_value = unpack_left_shift_u16(src_p[19], 6u, 0xffu);
    dst_p->ifc_ang_cmd_req_protn_value |= unpack_right_shift_u16(src_p[20], 2u, 0xfcu);
    dst_p->rolling_counter_ifc2 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);

    return (0);
}

int b30_001_ifc_fd1_init(struct b30_001_ifc_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_fd1_t));
    msg_p->checksum_ifc1 = 0.0;
    msg_p->ifc_trq_ovl_cmd_protn_value = 7169.0;
    msg_p->ifc_vibration_warning = 0.0;
    msg_p->ifc_func_trq_cmd_req_flag = 0.0;
    msg_p->rolling_counter_ifc1 = 0.0;
    msg_p->checksum_ifc2 = 0.0;
    msg_p->ifc_ang_cmd_req_protn_value = 7169.0;
    msg_p->rolling_counter_ifc2 = 0.0;

    return 0;
}

uint8_t b30_001_ifc_fd1_checksum_ifc1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd1_checksum_ifc1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_checksum_ifc1_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ifc_fd1_ifc_trq_ovl_cmd_protn_value_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_ifc_fd1_ifc_trq_ovl_cmd_protn_value_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_ifc_trq_ovl_cmd_protn_value_is_in_range(uint16_t value)
{
    return (value <= 16383u);
}

uint16_t b30_001_ifc_fd1_ifc_trq_ovl_cmd_req_value_encode(double value)
{
    return (uint16_t)((value - -10.23) / 0.01);
}

double b30_001_ifc_fd1_ifc_trq_ovl_cmd_req_value_decode(uint16_t value)
{
    return (((double)value * 0.01) + -10.23);
}

bool b30_001_ifc_fd1_ifc_trq_ovl_cmd_req_value_is_in_range(uint16_t value)
{
    return (value <= 2047u);
}

uint8_t b30_001_ifc_fd1_ifc_vibration_warning_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd1_ifc_vibration_warning_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_ifc_vibration_warning_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd1_ifc_func_trq_cmd_req_flag_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd1_ifc_func_trq_cmd_req_flag_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_ifc_func_trq_cmd_req_flag_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd1_rolling_counter_ifc1_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd1_rolling_counter_ifc1_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_rolling_counter_ifc1_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_ifc_fd1_checksum_ifc2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd1_checksum_ifc2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_checksum_ifc2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ifc_fd1_ifc_ang_cmd_req_value_encode(double value)
{
    return (uint16_t)((value - -780.0) / 0.1);
}

double b30_001_ifc_fd1_ifc_ang_cmd_req_value_decode(uint16_t value)
{
    return (((double)value * 0.1) + -780.0);
}

bool b30_001_ifc_fd1_ifc_ang_cmd_req_value_is_in_range(uint16_t value)
{
    return (value <= 15600u);
}

uint16_t b30_001_ifc_fd1_ifc_ang_cmd_req_protn_value_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_ifc_fd1_ifc_ang_cmd_req_protn_value_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_ifc_ang_cmd_req_protn_value_is_in_range(uint16_t value)
{
    return (value <= 16383u);
}

uint8_t b30_001_ifc_fd1_rolling_counter_ifc2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd1_rolling_counter_ifc2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd1_rolling_counter_ifc2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ifc_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_ifc3, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->ldw_resp, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->lka_resp, 6u, 0x40u);
    dst_p[9] |= pack_left_shift_u8(src_p->lck_resp, 5u, 0x20u);
    dst_p[9] |= pack_left_shift_u8(src_p->elk_resp, 4u, 0x10u);
    dst_p[9] |= pack_left_shift_u8(src_p->aes_resp, 3u, 0x08u);
    dst_p[9] |= pack_left_shift_u8(src_p->ldw_lka_snvty, 1u, 0x06u);
    dst_p[9] |= pack_left_shift_u8(src_p->ifchut_interface, 0u, 0x01u);
    dst_p[10] |= pack_left_shift_u8(src_p->ess_pedresp, 7u, 0x80u);
    dst_p[10] |= pack_left_shift_u8(src_p->ess_vehresp, 6u, 0x40u);
    dst_p[10] |= pack_left_shift_u8(src_p->lss_warn_form_resp, 4u, 0x30u);
    dst_p[10] |= pack_left_shift_u8(src_p->lss_resp, 3u, 0x08u);
    dst_p[10] |= pack_left_shift_u8(src_p->intelligent_eva_resp, 2u, 0x04u);
    dst_p[10] |= pack_left_shift_u8(src_p->aes_sts, 0u, 0x03u);
    dst_p[11] |= pack_left_shift_u8(src_p->ess_sts, 6u, 0xc0u);
    dst_p[11] |= pack_left_shift_u8(src_p->aes_err_sts, 5u, 0x20u);
    dst_p[11] |= pack_left_shift_u8(src_p->ess_err_sts, 4u, 0x10u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_ifc3, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_ifc4, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->ldw_lka_warn, 6u, 0xc0u);
    dst_p[17] |= pack_left_shift_u8(src_p->lss_intervention, 3u, 0x38u);
    dst_p[17] |= pack_left_shift_u8(src_p->lss_func_sts, 0u, 0x07u);
    dst_p[18] |= pack_left_shift_u8(src_p->elk_main_state, 5u, 0xe0u);
    dst_p[18] |= pack_left_shift_u8(src_p->lane_availability, 3u, 0x18u);
    dst_p[18] |= pack_left_shift_u8(src_p->tja_follow_sts, 1u, 0x06u);
    dst_p[18] |= pack_right_shift_u8(src_p->lss_err_sts, 2u, 0x01u);
    dst_p[19] |= pack_left_shift_u8(src_p->lss_err_sts, 6u, 0xc0u);
    dst_p[19] |= pack_left_shift_u8(src_p->ifc_handsoffwarn, 3u, 0x38u);
    dst_p[19] |= pack_left_shift_u8(src_p->ifc_calibration_sts, 1u, 0x06u);
    dst_p[19] |= pack_left_shift_u8(src_p->camera_blockage_sts, 0u, 0x01u);
    dst_p[20] |= pack_left_shift_u8(src_p->elk_act_sts, 6u, 0xc0u);
    dst_p[20] |= pack_left_shift_u8(src_p->intelligent_eva_act_sts, 4u, 0x30u);
    dst_p[20] |= pack_left_shift_u8(src_p->lck_sts_indcr, 2u, 0x0cu);
    dst_p[23] |= pack_left_shift_u8(src_p->ae_sintervention, 6u, 0xc0u);
    dst_p[23] |= pack_left_shift_u8(src_p->es_sintervention, 4u, 0x30u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_ifc4, 0u, 0x0fu);
    dst_p[24] |= pack_left_shift_u8(src_p->checksum_ifc5, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->ifc_lane_curve, 4u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->ifc_lane_curve, 4u, 0xf0u);
    dst_p[26] |= pack_left_shift_u8(src_p->ifc_le_lane_typ, 1u, 0x0eu);
    dst_p[26] |= pack_right_shift_u8(src_p->ifc_ri_lane_typ, 2u, 0x01u);
    dst_p[27] |= pack_left_shift_u8(src_p->ifc_ri_lane_typ, 6u, 0xc0u);
    dst_p[27] |= pack_left_shift_u8(src_p->ifc_next_le_lane_typ, 3u, 0x38u);
    dst_p[27] |= pack_left_shift_u8(src_p->ifc_next_ri_lane_typ, 0u, 0x07u);
    dst_p[28] |= pack_right_shift_u16(src_p->ifc_le_lane_dy, 4u, 0xffu);
    dst_p[29] |= pack_left_shift_u16(src_p->ifc_le_lane_dy, 4u, 0xf0u);
    dst_p[29] |= pack_right_shift_u16(src_p->ifc_ri_lane_dy, 8u, 0x0fu);
    dst_p[30] |= pack_left_shift_u16(src_p->ifc_ri_lane_dy, 0u, 0xffu);
    dst_p[31] |= pack_left_shift_u8(src_p->rolling_counter_ifc5, 0u, 0x0fu);
    dst_p[32] |= pack_left_shift_u8(src_p->checksum_ifc6, 0u, 0xffu);
    dst_p[33] |= pack_right_shift_u16(src_p->ifc_next_le_lane_dy, 4u, 0xffu);
    dst_p[34] |= pack_left_shift_u16(src_p->ifc_next_le_lane_dy, 4u, 0xf0u);
    dst_p[34] |= pack_right_shift_u16(src_p->ifc_next_ri_lane_dy, 8u, 0x0fu);
    dst_p[35] |= pack_left_shift_u16(src_p->ifc_next_ri_lane_dy, 0u, 0xffu);
    dst_p[39] |= pack_left_shift_u8(src_p->rolling_counter_ifc6, 0u, 0x0fu);

    return (64);
}

int b30_001_ifc_fd2_unpack(
    struct b30_001_ifc_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_ifc3 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->ldw_resp = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->lka_resp = unpack_right_shift_u8(src_p[9], 6u, 0x40u);
    dst_p->lck_resp = unpack_right_shift_u8(src_p[9], 5u, 0x20u);
    dst_p->elk_resp = unpack_right_shift_u8(src_p[9], 4u, 0x10u);
    dst_p->aes_resp = unpack_right_shift_u8(src_p[9], 3u, 0x08u);
    dst_p->ldw_lka_snvty = unpack_right_shift_u8(src_p[9], 1u, 0x06u);
    dst_p->ifchut_interface = unpack_right_shift_u8(src_p[9], 0u, 0x01u);
    dst_p->ess_pedresp = unpack_right_shift_u8(src_p[10], 7u, 0x80u);
    dst_p->ess_vehresp = unpack_right_shift_u8(src_p[10], 6u, 0x40u);
    dst_p->lss_warn_form_resp = unpack_right_shift_u8(src_p[10], 4u, 0x30u);
    dst_p->lss_resp = unpack_right_shift_u8(src_p[10], 3u, 0x08u);
    dst_p->intelligent_eva_resp = unpack_right_shift_u8(src_p[10], 2u, 0x04u);
    dst_p->aes_sts = unpack_right_shift_u8(src_p[10], 0u, 0x03u);
    dst_p->ess_sts = unpack_right_shift_u8(src_p[11], 6u, 0xc0u);
    dst_p->aes_err_sts = unpack_right_shift_u8(src_p[11], 5u, 0x20u);
    dst_p->ess_err_sts = unpack_right_shift_u8(src_p[11], 4u, 0x10u);
    dst_p->rolling_counter_ifc3 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_ifc4 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->ldw_lka_warn = unpack_right_shift_u8(src_p[17], 6u, 0xc0u);
    dst_p->lss_intervention = unpack_right_shift_u8(src_p[17], 3u, 0x38u);
    dst_p->lss_func_sts = unpack_right_shift_u8(src_p[17], 0u, 0x07u);
    dst_p->elk_main_state = unpack_right_shift_u8(src_p[18], 5u, 0xe0u);
    dst_p->lane_availability = unpack_right_shift_u8(src_p[18], 3u, 0x18u);
    dst_p->tja_follow_sts = unpack_right_shift_u8(src_p[18], 1u, 0x06u);
    dst_p->lss_err_sts = unpack_left_shift_u8(src_p[18], 2u, 0x01u);
    dst_p->lss_err_sts |= unpack_right_shift_u8(src_p[19], 6u, 0xc0u);
    dst_p->ifc_handsoffwarn = unpack_right_shift_u8(src_p[19], 3u, 0x38u);
    dst_p->ifc_calibration_sts = unpack_right_shift_u8(src_p[19], 1u, 0x06u);
    dst_p->camera_blockage_sts = unpack_right_shift_u8(src_p[19], 0u, 0x01u);
    dst_p->elk_act_sts = unpack_right_shift_u8(src_p[20], 6u, 0xc0u);
    dst_p->intelligent_eva_act_sts = unpack_right_shift_u8(src_p[20], 4u, 0x30u);
    dst_p->lck_sts_indcr = unpack_right_shift_u8(src_p[20], 2u, 0x0cu);
    dst_p->ae_sintervention = unpack_right_shift_u8(src_p[23], 6u, 0xc0u);
    dst_p->es_sintervention = unpack_right_shift_u8(src_p[23], 4u, 0x30u);
    dst_p->rolling_counter_ifc4 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->checksum_ifc5 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->ifc_lane_curve = unpack_left_shift_u16(src_p[25], 4u, 0xffu);
    dst_p->ifc_lane_curve |= unpack_right_shift_u16(src_p[26], 4u, 0xf0u);
    dst_p->ifc_le_lane_typ = unpack_right_shift_u8(src_p[26], 1u, 0x0eu);
    dst_p->ifc_ri_lane_typ = unpack_left_shift_u8(src_p[26], 2u, 0x01u);
    dst_p->ifc_ri_lane_typ |= unpack_right_shift_u8(src_p[27], 6u, 0xc0u);
    dst_p->ifc_next_le_lane_typ = unpack_right_shift_u8(src_p[27], 3u, 0x38u);
    dst_p->ifc_next_ri_lane_typ = unpack_right_shift_u8(src_p[27], 0u, 0x07u);
    dst_p->ifc_le_lane_dy = unpack_left_shift_u16(src_p[28], 4u, 0xffu);
    dst_p->ifc_le_lane_dy |= unpack_right_shift_u16(src_p[29], 4u, 0xf0u);
    dst_p->ifc_ri_lane_dy = unpack_left_shift_u16(src_p[29], 8u, 0x0fu);
    dst_p->ifc_ri_lane_dy |= unpack_right_shift_u16(src_p[30], 0u, 0xffu);
    dst_p->rolling_counter_ifc5 = unpack_right_shift_u8(src_p[31], 0u, 0x0fu);
    dst_p->checksum_ifc6 = unpack_right_shift_u8(src_p[32], 0u, 0xffu);
    dst_p->ifc_next_le_lane_dy = unpack_left_shift_u16(src_p[33], 4u, 0xffu);
    dst_p->ifc_next_le_lane_dy |= unpack_right_shift_u16(src_p[34], 4u, 0xf0u);
    dst_p->ifc_next_ri_lane_dy = unpack_left_shift_u16(src_p[34], 8u, 0x0fu);
    dst_p->ifc_next_ri_lane_dy |= unpack_right_shift_u16(src_p[35], 0u, 0xffu);
    dst_p->rolling_counter_ifc6 = unpack_right_shift_u8(src_p[39], 0u, 0x0fu);

    return (0);
}

int b30_001_ifc_fd2_init(struct b30_001_ifc_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_fd2_t));
    msg_p->checksum_ifc3 = 0.0;
    msg_p->ldw_resp = 0.0;
    msg_p->lka_resp = 0.0;
    msg_p->lck_resp = 0.0;
    msg_p->elk_resp = 0.0;
    msg_p->aes_resp = 0.0;
    msg_p->ldw_lka_snvty = 0.0;
    msg_p->ifchut_interface = 0.0;
    msg_p->ess_pedresp = 0.0;
    msg_p->ess_vehresp = 0.0;
    msg_p->lss_warn_form_resp = 0.0;
    msg_p->lss_resp = 0.0;
    msg_p->intelligent_eva_resp = 0.0;
    msg_p->aes_sts = 0.0;
    msg_p->ess_sts = 0.0;
    msg_p->aes_err_sts = 0.0;
    msg_p->ess_err_sts = 0.0;
    msg_p->rolling_counter_ifc3 = 0.0;
    msg_p->checksum_ifc4 = 0.0;
    msg_p->ldw_lka_warn = 0.0;
    msg_p->lss_intervention = 0.0;
    msg_p->lss_func_sts = 0.0;
    msg_p->elk_main_state = 0.0;
    msg_p->lane_availability = 0.0;
    msg_p->tja_follow_sts = 0.0;
    msg_p->lss_err_sts = 0.0;
    msg_p->ifc_handsoffwarn = 0.0;
    msg_p->ifc_calibration_sts = 0.0;
    msg_p->camera_blockage_sts = 0.0;
    msg_p->elk_act_sts = 0.0;
    msg_p->intelligent_eva_act_sts = 0.0;
    msg_p->lck_sts_indcr = 0.0;
    msg_p->ae_sintervention = 0.0;
    msg_p->es_sintervention = 0.0;
    msg_p->rolling_counter_ifc4 = 0.0;
    msg_p->checksum_ifc5 = 0.0;
    msg_p->ifc_le_lane_typ = 0.0;
    msg_p->ifc_ri_lane_typ = 0.0;
    msg_p->ifc_next_le_lane_typ = 0.0;
    msg_p->ifc_next_ri_lane_typ = 0.0;
    msg_p->ifc_le_lane_dy = 2496.0;
    msg_p->ifc_ri_lane_dy = 2496.0;
    msg_p->rolling_counter_ifc5 = 0.0;
    msg_p->checksum_ifc6 = 0.0;
    msg_p->ifc_next_le_lane_dy = 2496.0;
    msg_p->ifc_next_ri_lane_dy = 2496.0;
    msg_p->rolling_counter_ifc6 = 0.0;

    return 0;
}

uint8_t b30_001_ifc_fd2_checksum_ifc3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_checksum_ifc3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_checksum_ifc3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ifc_fd2_ldw_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ldw_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ldw_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_lka_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lka_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lka_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_lck_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lck_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lck_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_elk_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_elk_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_elk_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_aes_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_aes_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_aes_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_ldw_lka_snvty_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ldw_lka_snvty_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ldw_lka_snvty_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_ifchut_interface_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifchut_interface_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifchut_interface_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_ess_pedresp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ess_pedresp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ess_pedresp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_ess_vehresp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ess_vehresp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ess_vehresp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_lss_warn_form_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lss_warn_form_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lss_warn_form_resp_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_lss_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lss_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lss_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_intelligent_eva_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_intelligent_eva_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_intelligent_eva_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_aes_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_aes_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_aes_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_ess_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ess_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ess_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_aes_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_aes_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_aes_err_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_ess_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ess_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ess_err_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_rolling_counter_ifc3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_rolling_counter_ifc3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_rolling_counter_ifc3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_ifc_fd2_checksum_ifc4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_checksum_ifc4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_checksum_ifc4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ifc_fd2_ldw_lka_warn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ldw_lka_warn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ldw_lka_warn_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_lss_intervention_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lss_intervention_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lss_intervention_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_lss_func_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lss_func_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lss_func_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_elk_main_state_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_elk_main_state_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_elk_main_state_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_lane_availability_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lane_availability_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lane_availability_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_tja_follow_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_tja_follow_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_tja_follow_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_lss_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lss_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lss_err_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_ifc_handsoffwarn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifc_handsoffwarn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifc_handsoffwarn_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_ifc_calibration_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifc_calibration_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifc_calibration_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_camera_blockage_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_camera_blockage_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_camera_blockage_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd2_elk_act_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_elk_act_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_elk_act_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_intelligent_eva_act_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_intelligent_eva_act_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_intelligent_eva_act_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_lck_sts_indcr_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_lck_sts_indcr_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_lck_sts_indcr_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_ae_sintervention_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ae_sintervention_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ae_sintervention_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_es_sintervention_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_es_sintervention_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_es_sintervention_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd2_rolling_counter_ifc4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_rolling_counter_ifc4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_rolling_counter_ifc4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_ifc_fd2_checksum_ifc5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_checksum_ifc5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_checksum_ifc5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ifc_fd2_ifc_lane_curve_encode(double value)
{
    return (uint16_t)((value - -0.030705) / 1.5e-05);
}

double b30_001_ifc_fd2_ifc_lane_curve_decode(uint16_t value)
{
    return (((double)value * 1.5e-05) + -0.030705);
}

bool b30_001_ifc_fd2_ifc_lane_curve_is_in_range(uint16_t value)
{
    return (value <= 4094u);
}

uint8_t b30_001_ifc_fd2_ifc_le_lane_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifc_le_lane_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifc_le_lane_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_ifc_ri_lane_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifc_ri_lane_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifc_ri_lane_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_ifc_next_le_lane_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifc_next_le_lane_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifc_next_le_lane_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd2_ifc_next_ri_lane_typ_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_ifc_next_ri_lane_typ_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_ifc_next_ri_lane_typ_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint16_t b30_001_ifc_fd2_ifc_le_lane_dy_encode(double value)
{
    return (uint16_t)((value - -8.0) / 0.00390625);
}

double b30_001_ifc_fd2_ifc_le_lane_dy_decode(uint16_t value)
{
    return (((double)value * 0.00390625) + -8.0);
}

bool b30_001_ifc_fd2_ifc_le_lane_dy_is_in_range(uint16_t value)
{
    return (value <= 4094u);
}

uint16_t b30_001_ifc_fd2_ifc_ri_lane_dy_encode(double value)
{
    return (uint16_t)((value - -8.0) / 0.00390625);
}

double b30_001_ifc_fd2_ifc_ri_lane_dy_decode(uint16_t value)
{
    return (((double)value * 0.00390625) + -8.0);
}

bool b30_001_ifc_fd2_ifc_ri_lane_dy_is_in_range(uint16_t value)
{
    return (value <= 4094u);
}

uint8_t b30_001_ifc_fd2_rolling_counter_ifc5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_rolling_counter_ifc5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_rolling_counter_ifc5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_ifc_fd2_checksum_ifc6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_checksum_ifc6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_checksum_ifc6_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_ifc_fd2_ifc_next_le_lane_dy_encode(double value)
{
    return (uint16_t)((value - -8.0) / 0.00390625);
}

double b30_001_ifc_fd2_ifc_next_le_lane_dy_decode(uint16_t value)
{
    return (((double)value * 0.00390625) + -8.0);
}

bool b30_001_ifc_fd2_ifc_next_le_lane_dy_is_in_range(uint16_t value)
{
    return (value <= 4094u);
}

uint16_t b30_001_ifc_fd2_ifc_next_ri_lane_dy_encode(double value)
{
    return (uint16_t)((value - -8.0) / 0.00390625);
}

double b30_001_ifc_fd2_ifc_next_ri_lane_dy_decode(uint16_t value)
{
    return (((double)value * 0.00390625) + -8.0);
}

bool b30_001_ifc_fd2_ifc_next_ri_lane_dy_is_in_range(uint16_t value)
{
    return (value <= 4094u);
}

uint8_t b30_001_ifc_fd2_rolling_counter_ifc6_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd2_rolling_counter_ifc6_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd2_rolling_counter_ifc6_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ifc_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_fd3_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[8] |= pack_left_shift_u8(src_p->checksum_ifc7, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->tsr_resp, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->tsr_spd_lim_unit, 5u, 0x60u);
    dst_p[9] |= pack_left_shift_u8(src_p->tsr_spd_lim_cfdc, 3u, 0x18u);
    dst_p[9] |= pack_left_shift_u8(src_p->tsr_sts, 0u, 0x07u);
    dst_p[10] |= pack_left_shift_u8(src_p->tsr_spd_lim, 2u, 0xfcu);
    dst_p[10] |= pack_left_shift_u8(src_p->tsr_spd_lim_sts, 0u, 0x03u);
    dst_p[11] |= pack_left_shift_u8(src_p->tsr_trfc_sign_val_cfdc, 6u, 0xc0u);
    dst_p[11] |= pack_right_shift_u8(src_p->tsr_trfc_sign_val, 2u, 0x3fu);
    dst_p[12] |= pack_left_shift_u8(src_p->tsr_trfc_sign_val, 6u, 0xc0u);
    dst_p[12] |= pack_left_shift_u8(src_p->tsr_spd_lim_warn, 5u, 0x20u);
    dst_p[12] |= pack_left_shift_u8(src_p->tsr_snvty, 0u, 0x1fu);
    dst_p[13] |= pack_left_shift_u8(src_p->idc_l2_emgy_light_req, 7u, 0x80u);
    dst_p[13] |= pack_left_shift_u8(src_p->idc_l2_turn_light_req, 5u, 0x60u);
    dst_p[13] |= pack_left_shift_u8(src_p->tsr_warn_resp, 4u, 0x10u);
    dst_p[13] |= pack_left_shift_u8(src_p->idc_l2_f_wiper_req, 1u, 0x0eu);
    dst_p[14] |= pack_left_shift_u8(src_p->hma_hibeam_req, 0u, 0x03u);
    dst_p[15] |= pack_left_shift_u8(src_p->hma_sts, 5u, 0xe0u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_ifc7, 0u, 0x0fu);
    dst_p[17] |= pack_left_shift_u8(src_p->hwa_warn_info_disp, 2u, 0x3cu);
    dst_p[17] |= pack_left_shift_u8(src_p->hwa_tak_over_req, 0u, 0x03u);
    dst_p[18] |= pack_left_shift_u8(src_p->hwa_tak_over_trig, 5u, 0xe0u);
    dst_p[18] |= pack_left_shift_u8(src_p->ifc_line01_source, 0u, 0x01u);
    dst_p[21] |= pack_left_shift_u8(src_p->ifc_line02_source, 6u, 0x40u);
    dst_p[22] |= pack_left_shift_u8(src_p->hwa_inhibit_warn, 5u, 0xe0u);
    dst_p[28] |= pack_left_shift_u8(src_p->rain_mode_swt_resp, 4u, 0x10u);
    dst_p[28] |= pack_left_shift_u8(src_p->lc_mode_swt_resp, 2u, 0x0cu);
    dst_p[28] |= pack_left_shift_u8(src_p->nav_dec_swt_resp, 1u, 0x02u);
    dst_p[29] |= pack_left_shift_u8(src_p->nav_dec_active, 4u, 0xf0u);

    return (64);
}

int b30_001_ifc_fd3_unpack(
    struct b30_001_ifc_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->checksum_ifc7 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->tsr_resp = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->tsr_spd_lim_unit = unpack_right_shift_u8(src_p[9], 5u, 0x60u);
    dst_p->tsr_spd_lim_cfdc = unpack_right_shift_u8(src_p[9], 3u, 0x18u);
    dst_p->tsr_sts = unpack_right_shift_u8(src_p[9], 0u, 0x07u);
    dst_p->tsr_spd_lim = unpack_right_shift_u8(src_p[10], 2u, 0xfcu);
    dst_p->tsr_spd_lim_sts = unpack_right_shift_u8(src_p[10], 0u, 0x03u);
    dst_p->tsr_trfc_sign_val_cfdc = unpack_right_shift_u8(src_p[11], 6u, 0xc0u);
    dst_p->tsr_trfc_sign_val = unpack_left_shift_u8(src_p[11], 2u, 0x3fu);
    dst_p->tsr_trfc_sign_val |= unpack_right_shift_u8(src_p[12], 6u, 0xc0u);
    dst_p->tsr_spd_lim_warn = unpack_right_shift_u8(src_p[12], 5u, 0x20u);
    dst_p->tsr_snvty = unpack_right_shift_u8(src_p[12], 0u, 0x1fu);
    dst_p->idc_l2_emgy_light_req = unpack_right_shift_u8(src_p[13], 7u, 0x80u);
    dst_p->idc_l2_turn_light_req = unpack_right_shift_u8(src_p[13], 5u, 0x60u);
    dst_p->tsr_warn_resp = unpack_right_shift_u8(src_p[13], 4u, 0x10u);
    dst_p->idc_l2_f_wiper_req = unpack_right_shift_u8(src_p[13], 1u, 0x0eu);
    dst_p->hma_hibeam_req = unpack_right_shift_u8(src_p[14], 0u, 0x03u);
    dst_p->hma_sts = unpack_right_shift_u8(src_p[15], 5u, 0xe0u);
    dst_p->rolling_counter_ifc7 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->hwa_warn_info_disp = unpack_right_shift_u8(src_p[17], 2u, 0x3cu);
    dst_p->hwa_tak_over_req = unpack_right_shift_u8(src_p[17], 0u, 0x03u);
    dst_p->hwa_tak_over_trig = unpack_right_shift_u8(src_p[18], 5u, 0xe0u);
    dst_p->ifc_line01_source = unpack_right_shift_u8(src_p[18], 0u, 0x01u);
    dst_p->ifc_line02_source = unpack_right_shift_u8(src_p[21], 6u, 0x40u);
    dst_p->hwa_inhibit_warn = unpack_right_shift_u8(src_p[22], 5u, 0xe0u);
    dst_p->rain_mode_swt_resp = unpack_right_shift_u8(src_p[28], 4u, 0x10u);
    dst_p->lc_mode_swt_resp = unpack_right_shift_u8(src_p[28], 2u, 0x0cu);
    dst_p->nav_dec_swt_resp = unpack_right_shift_u8(src_p[28], 1u, 0x02u);
    dst_p->nav_dec_active = unpack_right_shift_u8(src_p[29], 4u, 0xf0u);

    return (0);
}

int b30_001_ifc_fd3_init(struct b30_001_ifc_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_fd3_t));
    msg_p->checksum_ifc7 = 0.0;
    msg_p->tsr_resp = 0.0;
    msg_p->tsr_spd_lim_unit = 1.0;
    msg_p->tsr_spd_lim_cfdc = 0.0;
    msg_p->tsr_sts = 0.0;
    msg_p->tsr_spd_lim = 0.0;
    msg_p->tsr_spd_lim_sts = 0.0;
    msg_p->tsr_trfc_sign_val_cfdc = 0.0;
    msg_p->tsr_trfc_sign_val = 0.0;
    msg_p->tsr_spd_lim_warn = 0.0;
    msg_p->idc_l2_emgy_light_req = 0.0;
    msg_p->idc_l2_turn_light_req = 0.0;
    msg_p->tsr_warn_resp = 0.0;
    msg_p->idc_l2_f_wiper_req = 0.0;
    msg_p->hma_hibeam_req = 0.0;
    msg_p->hma_sts = 0.0;
    msg_p->rolling_counter_ifc7 = 0.0;
    msg_p->hwa_warn_info_disp = 0.0;
    msg_p->hwa_tak_over_req = 0.0;
    msg_p->hwa_tak_over_trig = 0.0;
    msg_p->ifc_line01_source = 0.0;
    msg_p->ifc_line02_source = 0.0;
    msg_p->hwa_inhibit_warn = 0.0;
    msg_p->rain_mode_swt_resp = 0.0;
    msg_p->lc_mode_swt_resp = 0.0;
    msg_p->nav_dec_swt_resp = 0.0;
    msg_p->nav_dec_active = 0.0;

    return 0;
}

uint8_t b30_001_ifc_fd3_checksum_ifc7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_checksum_ifc7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_checksum_ifc7_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ifc_fd3_tsr_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_tsr_spd_lim_unit_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_spd_lim_unit_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_spd_lim_unit_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_tsr_spd_lim_cfdc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_spd_lim_cfdc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_spd_lim_cfdc_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_tsr_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd3_tsr_spd_lim_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_spd_lim_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_spd_lim_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_ifc_fd3_tsr_spd_lim_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_spd_lim_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_spd_lim_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_tsr_trfc_sign_val_cfdc_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_trfc_sign_val_cfdc_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_trfc_sign_val_cfdc_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_tsr_trfc_sign_val_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_trfc_sign_val_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_trfc_sign_val_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_ifc_fd3_tsr_spd_lim_warn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_spd_lim_warn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_spd_lim_warn_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_tsr_snvty_encode(double value)
{
    return (uint8_t)(value - -15.0);
}

double b30_001_ifc_fd3_tsr_snvty_decode(uint8_t value)
{
    return ((double)value + -15.0);
}

bool b30_001_ifc_fd3_tsr_snvty_is_in_range(uint8_t value)
{
    return (value <= 30u);
}

uint8_t b30_001_ifc_fd3_idc_l2_emgy_light_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_idc_l2_emgy_light_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_idc_l2_emgy_light_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_idc_l2_turn_light_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_idc_l2_turn_light_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_idc_l2_turn_light_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_tsr_warn_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_tsr_warn_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_tsr_warn_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_idc_l2_f_wiper_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_idc_l2_f_wiper_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_idc_l2_f_wiper_req_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd3_hma_hibeam_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_hma_hibeam_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_hma_hibeam_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_hma_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_hma_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_hma_sts_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd3_rolling_counter_ifc7_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_rolling_counter_ifc7_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_rolling_counter_ifc7_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_ifc_fd3_hwa_warn_info_disp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_hwa_warn_info_disp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_hwa_warn_info_disp_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_ifc_fd3_hwa_tak_over_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_hwa_tak_over_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_hwa_tak_over_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_hwa_tak_over_trig_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_hwa_tak_over_trig_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_hwa_tak_over_trig_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd3_ifc_line01_source_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_ifc_line01_source_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_ifc_line01_source_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_ifc_line02_source_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_ifc_line02_source_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_ifc_line02_source_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_hwa_inhibit_warn_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_hwa_inhibit_warn_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_hwa_inhibit_warn_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_ifc_fd3_rain_mode_swt_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_rain_mode_swt_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_rain_mode_swt_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_lc_mode_swt_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_lc_mode_swt_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_lc_mode_swt_resp_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_ifc_fd3_nav_dec_swt_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_nav_dec_swt_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_nav_dec_swt_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_ifc_fd3_nav_dec_active_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd3_nav_dec_active_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd3_nav_dec_active_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ifc_fd5_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_fd5_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_right_shift_u16(src_p->ifc_line01_dy, 5u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->ifc_line01_dy, 3u, 0xf8u);
    dst_p[2] |= pack_right_shift_u16(src_p->ifc_line01_curv, 12u, 0x07u);
    dst_p[3] |= pack_right_shift_u16(src_p->ifc_line01_curv, 4u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->ifc_line01_curv, 4u, 0xf0u);
    dst_p[4] |= pack_right_shift_u32(src_p->ifc_line01_curv_change, 16u, 0x0fu);
    dst_p[5] |= pack_right_shift_u32(src_p->ifc_line01_curv_change, 8u, 0xffu);
    dst_p[6] |= pack_left_shift_u32(src_p->ifc_line01_curv_change, 0u, 0xffu);
    dst_p[7] |= pack_left_shift_u8(src_p->ifc_line01_type, 4u, 0xf0u);
    dst_p[9] |= pack_right_shift_u16(src_p->ifc_line02_dy, 5u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->ifc_line02_dy, 3u, 0xf8u);
    dst_p[10] |= pack_right_shift_u16(src_p->ifc_line02_curv, 12u, 0x07u);
    dst_p[11] |= pack_right_shift_u16(src_p->ifc_line02_curv, 4u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->ifc_line02_curv, 4u, 0xf0u);
    dst_p[12] |= pack_right_shift_u32(src_p->ifc_line02_curv_change, 16u, 0x0fu);
    dst_p[13] |= pack_right_shift_u32(src_p->ifc_line02_curv_change, 8u, 0xffu);
    dst_p[14] |= pack_left_shift_u32(src_p->ifc_line02_curv_change, 0u, 0xffu);
    dst_p[15] |= pack_left_shift_u8(src_p->ifc_line02_type, 4u, 0xf0u);
    dst_p[17] |= pack_right_shift_u16(src_p->ifc_line03_dy, 5u, 0xffu);
    dst_p[18] |= pack_left_shift_u16(src_p->ifc_line03_dy, 3u, 0xf8u);
    dst_p[18] |= pack_right_shift_u16(src_p->ifc_line03_curv, 12u, 0x07u);
    dst_p[19] |= pack_right_shift_u16(src_p->ifc_line03_curv, 4u, 0xffu);
    dst_p[20] |= pack_left_shift_u16(src_p->ifc_line03_curv, 4u, 0xf0u);
    dst_p[20] |= pack_right_shift_u32(src_p->ifc_line03_curv_change, 16u, 0x0fu);
    dst_p[21] |= pack_right_shift_u32(src_p->ifc_line03_curv_change, 8u, 0xffu);
    dst_p[22] |= pack_left_shift_u32(src_p->ifc_line03_curv_change, 0u, 0xffu);
    dst_p[23] |= pack_left_shift_u8(src_p->ifc_line03_type, 4u, 0xf0u);
    dst_p[25] |= pack_right_shift_u16(src_p->ifc_line04_dy, 5u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->ifc_line04_dy, 3u, 0xf8u);
    dst_p[26] |= pack_right_shift_u16(src_p->ifc_line04_curv, 12u, 0x07u);
    dst_p[27] |= pack_right_shift_u16(src_p->ifc_line04_curv, 4u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->ifc_line04_curv, 4u, 0xf0u);
    dst_p[28] |= pack_right_shift_u32(src_p->ifc_line04_curv_change, 16u, 0x0fu);
    dst_p[29] |= pack_right_shift_u32(src_p->ifc_line04_curv_change, 8u, 0xffu);
    dst_p[30] |= pack_left_shift_u32(src_p->ifc_line04_curv_change, 0u, 0xffu);
    dst_p[31] |= pack_left_shift_u8(src_p->ifc_line04_type, 4u, 0xf0u);
    dst_p[33] |= pack_right_shift_u16(src_p->ifc_roadedge01_dy, 5u, 0xffu);
    dst_p[34] |= pack_left_shift_u16(src_p->ifc_roadedge01_dy, 3u, 0xf8u);
    dst_p[34] |= pack_right_shift_u16(src_p->ifc_roadedge01_curv, 12u, 0x07u);
    dst_p[35] |= pack_right_shift_u16(src_p->ifc_roadedge01_curv, 4u, 0xffu);
    dst_p[36] |= pack_left_shift_u16(src_p->ifc_roadedge01_curv, 4u, 0xf0u);
    dst_p[36] |= pack_right_shift_u32(src_p->ifc_roadedge01_curv_change, 16u, 0x0fu);
    dst_p[37] |= pack_right_shift_u32(src_p->ifc_roadedge01_curv_change, 8u, 0xffu);
    dst_p[38] |= pack_left_shift_u32(src_p->ifc_roadedge01_curv_change, 0u, 0xffu);
    dst_p[39] |= pack_left_shift_u8(src_p->ifc_roadedge01_type, 4u, 0xf0u);
    dst_p[41] |= pack_right_shift_u16(src_p->ifc_roadedge02_dy, 5u, 0xffu);
    dst_p[42] |= pack_left_shift_u16(src_p->ifc_roadedge02_dy, 3u, 0xf8u);
    dst_p[42] |= pack_right_shift_u16(src_p->ifc_roadedge02_curv, 12u, 0x07u);
    dst_p[43] |= pack_right_shift_u16(src_p->ifc_roadedge02_curv, 4u, 0xffu);
    dst_p[44] |= pack_left_shift_u16(src_p->ifc_roadedge02_curv, 4u, 0xf0u);
    dst_p[44] |= pack_right_shift_u32(src_p->ifc_roadedge02_curv_change, 16u, 0x0fu);
    dst_p[45] |= pack_right_shift_u32(src_p->ifc_roadedge02_curv_change, 8u, 0xffu);
    dst_p[46] |= pack_left_shift_u32(src_p->ifc_roadedge02_curv_change, 0u, 0xffu);
    dst_p[47] |= pack_left_shift_u8(src_p->ifc_roadedge02_type, 4u, 0xf0u);

    return (64);
}

int b30_001_ifc_fd5_unpack(
    struct b30_001_ifc_fd5_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->ifc_line01_dy = unpack_left_shift_u16(src_p[1], 5u, 0xffu);
    dst_p->ifc_line01_dy |= unpack_right_shift_u16(src_p[2], 3u, 0xf8u);
    dst_p->ifc_line01_curv = unpack_left_shift_u16(src_p[2], 12u, 0x07u);
    dst_p->ifc_line01_curv |= unpack_left_shift_u16(src_p[3], 4u, 0xffu);
    dst_p->ifc_line01_curv |= unpack_right_shift_u16(src_p[4], 4u, 0xf0u);
    dst_p->ifc_line01_curv_change = unpack_left_shift_u32(src_p[4], 16u, 0x0fu);
    dst_p->ifc_line01_curv_change |= unpack_left_shift_u32(src_p[5], 8u, 0xffu);
    dst_p->ifc_line01_curv_change |= unpack_right_shift_u32(src_p[6], 0u, 0xffu);
    dst_p->ifc_line01_type = unpack_right_shift_u8(src_p[7], 4u, 0xf0u);
    dst_p->ifc_line02_dy = unpack_left_shift_u16(src_p[9], 5u, 0xffu);
    dst_p->ifc_line02_dy |= unpack_right_shift_u16(src_p[10], 3u, 0xf8u);
    dst_p->ifc_line02_curv = unpack_left_shift_u16(src_p[10], 12u, 0x07u);
    dst_p->ifc_line02_curv |= unpack_left_shift_u16(src_p[11], 4u, 0xffu);
    dst_p->ifc_line02_curv |= unpack_right_shift_u16(src_p[12], 4u, 0xf0u);
    dst_p->ifc_line02_curv_change = unpack_left_shift_u32(src_p[12], 16u, 0x0fu);
    dst_p->ifc_line02_curv_change |= unpack_left_shift_u32(src_p[13], 8u, 0xffu);
    dst_p->ifc_line02_curv_change |= unpack_right_shift_u32(src_p[14], 0u, 0xffu);
    dst_p->ifc_line02_type = unpack_right_shift_u8(src_p[15], 4u, 0xf0u);
    dst_p->ifc_line03_dy = unpack_left_shift_u16(src_p[17], 5u, 0xffu);
    dst_p->ifc_line03_dy |= unpack_right_shift_u16(src_p[18], 3u, 0xf8u);
    dst_p->ifc_line03_curv = unpack_left_shift_u16(src_p[18], 12u, 0x07u);
    dst_p->ifc_line03_curv |= unpack_left_shift_u16(src_p[19], 4u, 0xffu);
    dst_p->ifc_line03_curv |= unpack_right_shift_u16(src_p[20], 4u, 0xf0u);
    dst_p->ifc_line03_curv_change = unpack_left_shift_u32(src_p[20], 16u, 0x0fu);
    dst_p->ifc_line03_curv_change |= unpack_left_shift_u32(src_p[21], 8u, 0xffu);
    dst_p->ifc_line03_curv_change |= unpack_right_shift_u32(src_p[22], 0u, 0xffu);
    dst_p->ifc_line03_type = unpack_right_shift_u8(src_p[23], 4u, 0xf0u);
    dst_p->ifc_line04_dy = unpack_left_shift_u16(src_p[25], 5u, 0xffu);
    dst_p->ifc_line04_dy |= unpack_right_shift_u16(src_p[26], 3u, 0xf8u);
    dst_p->ifc_line04_curv = unpack_left_shift_u16(src_p[26], 12u, 0x07u);
    dst_p->ifc_line04_curv |= unpack_left_shift_u16(src_p[27], 4u, 0xffu);
    dst_p->ifc_line04_curv |= unpack_right_shift_u16(src_p[28], 4u, 0xf0u);
    dst_p->ifc_line04_curv_change = unpack_left_shift_u32(src_p[28], 16u, 0x0fu);
    dst_p->ifc_line04_curv_change |= unpack_left_shift_u32(src_p[29], 8u, 0xffu);
    dst_p->ifc_line04_curv_change |= unpack_right_shift_u32(src_p[30], 0u, 0xffu);
    dst_p->ifc_line04_type = unpack_right_shift_u8(src_p[31], 4u, 0xf0u);
    dst_p->ifc_roadedge01_dy = unpack_left_shift_u16(src_p[33], 5u, 0xffu);
    dst_p->ifc_roadedge01_dy |= unpack_right_shift_u16(src_p[34], 3u, 0xf8u);
    dst_p->ifc_roadedge01_curv = unpack_left_shift_u16(src_p[34], 12u, 0x07u);
    dst_p->ifc_roadedge01_curv |= unpack_left_shift_u16(src_p[35], 4u, 0xffu);
    dst_p->ifc_roadedge01_curv |= unpack_right_shift_u16(src_p[36], 4u, 0xf0u);
    dst_p->ifc_roadedge01_curv_change = unpack_left_shift_u32(src_p[36], 16u, 0x0fu);
    dst_p->ifc_roadedge01_curv_change |= unpack_left_shift_u32(src_p[37], 8u, 0xffu);
    dst_p->ifc_roadedge01_curv_change |= unpack_right_shift_u32(src_p[38], 0u, 0xffu);
    dst_p->ifc_roadedge01_type = unpack_right_shift_u8(src_p[39], 4u, 0xf0u);
    dst_p->ifc_roadedge02_dy = unpack_left_shift_u16(src_p[41], 5u, 0xffu);
    dst_p->ifc_roadedge02_dy |= unpack_right_shift_u16(src_p[42], 3u, 0xf8u);
    dst_p->ifc_roadedge02_curv = unpack_left_shift_u16(src_p[42], 12u, 0x07u);
    dst_p->ifc_roadedge02_curv |= unpack_left_shift_u16(src_p[43], 4u, 0xffu);
    dst_p->ifc_roadedge02_curv |= unpack_right_shift_u16(src_p[44], 4u, 0xf0u);
    dst_p->ifc_roadedge02_curv_change = unpack_left_shift_u32(src_p[44], 16u, 0x0fu);
    dst_p->ifc_roadedge02_curv_change |= unpack_left_shift_u32(src_p[45], 8u, 0xffu);
    dst_p->ifc_roadedge02_curv_change |= unpack_right_shift_u32(src_p[46], 0u, 0xffu);
    dst_p->ifc_roadedge02_type = unpack_right_shift_u8(src_p[47], 4u, 0xf0u);

    return (0);
}

int b30_001_ifc_fd5_init(struct b30_001_ifc_fd5_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_fd5_t));
    msg_p->ifc_line01_dy = 2825.0;
    msg_p->ifc_line01_type = 0.0;
    msg_p->ifc_line02_dy = 2825.0;
    msg_p->ifc_line02_type = 0.0;
    msg_p->ifc_line03_dy = 2825.0;
    msg_p->ifc_line03_type = 0.0;
    msg_p->ifc_line04_dy = 2825.0;
    msg_p->ifc_line04_type = 0.0;
    msg_p->ifc_roadedge01_dy = 2825.0;
    msg_p->ifc_roadedge01_type = 0.0;
    msg_p->ifc_roadedge02_dy = 2825.0;
    msg_p->ifc_roadedge02_type = 0.0;

    return 0;
}

uint16_t b30_001_ifc_fd5_ifc_line01_dy_encode(double value)
{
    return (uint16_t)((value - -30.0) / 0.01);
}

double b30_001_ifc_fd5_ifc_line01_dy_decode(uint16_t value)
{
    return (((double)value * 0.01) + -30.0);
}

bool b30_001_ifc_fd5_ifc_line01_dy_is_in_range(uint16_t value)
{
    return (value <= 6000u);
}

uint16_t b30_001_ifc_fd5_ifc_line01_curv_encode(double value)
{
    return (uint16_t)((value - -0.25) / 1.6e-05);
}

double b30_001_ifc_fd5_ifc_line01_curv_decode(uint16_t value)
{
    return (((double)value * 1.6e-05) + -0.25);
}

bool b30_001_ifc_fd5_ifc_line01_curv_is_in_range(uint16_t value)
{
    return (value <= 31250u);
}

uint32_t b30_001_ifc_fd5_ifc_line01_curv_change_encode(double value)
{
    return (uint32_t)((value - -0.024) / 5e-08);
}

double b30_001_ifc_fd5_ifc_line01_curv_change_decode(uint32_t value)
{
    return (((double)value * 5e-08) + -0.024);
}

bool b30_001_ifc_fd5_ifc_line01_curv_change_is_in_range(uint32_t value)
{
    return (value <= 960000u);
}

uint8_t b30_001_ifc_fd5_ifc_line01_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd5_ifc_line01_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd5_ifc_line01_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t b30_001_ifc_fd5_ifc_line02_dy_encode(double value)
{
    return (uint16_t)((value - -30.0) / 0.01);
}

double b30_001_ifc_fd5_ifc_line02_dy_decode(uint16_t value)
{
    return (((double)value * 0.01) + -30.0);
}

bool b30_001_ifc_fd5_ifc_line02_dy_is_in_range(uint16_t value)
{
    return (value <= 6000u);
}

uint16_t b30_001_ifc_fd5_ifc_line02_curv_encode(double value)
{
    return (uint16_t)((value - -0.25) / 1.6e-05);
}

double b30_001_ifc_fd5_ifc_line02_curv_decode(uint16_t value)
{
    return (((double)value * 1.6e-05) + -0.25);
}

bool b30_001_ifc_fd5_ifc_line02_curv_is_in_range(uint16_t value)
{
    return (value <= 31250u);
}

uint32_t b30_001_ifc_fd5_ifc_line02_curv_change_encode(double value)
{
    return (uint32_t)((value - -0.024) / 5e-08);
}

double b30_001_ifc_fd5_ifc_line02_curv_change_decode(uint32_t value)
{
    return (((double)value * 5e-08) + -0.024);
}

bool b30_001_ifc_fd5_ifc_line02_curv_change_is_in_range(uint32_t value)
{
    return (value <= 960000u);
}

uint8_t b30_001_ifc_fd5_ifc_line02_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd5_ifc_line02_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd5_ifc_line02_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t b30_001_ifc_fd5_ifc_line03_dy_encode(double value)
{
    return (uint16_t)((value - -30.0) / 0.01);
}

double b30_001_ifc_fd5_ifc_line03_dy_decode(uint16_t value)
{
    return (((double)value * 0.01) + -30.0);
}

bool b30_001_ifc_fd5_ifc_line03_dy_is_in_range(uint16_t value)
{
    return (value <= 6000u);
}

uint16_t b30_001_ifc_fd5_ifc_line03_curv_encode(double value)
{
    return (uint16_t)((value - -0.25) / 1.6e-05);
}

double b30_001_ifc_fd5_ifc_line03_curv_decode(uint16_t value)
{
    return (((double)value * 1.6e-05) + -0.25);
}

bool b30_001_ifc_fd5_ifc_line03_curv_is_in_range(uint16_t value)
{
    return (value <= 31250u);
}

uint32_t b30_001_ifc_fd5_ifc_line03_curv_change_encode(double value)
{
    return (uint32_t)((value - -0.024) / 5e-08);
}

double b30_001_ifc_fd5_ifc_line03_curv_change_decode(uint32_t value)
{
    return (((double)value * 5e-08) + -0.024);
}

bool b30_001_ifc_fd5_ifc_line03_curv_change_is_in_range(uint32_t value)
{
    return (value <= 960000u);
}

uint8_t b30_001_ifc_fd5_ifc_line03_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd5_ifc_line03_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd5_ifc_line03_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t b30_001_ifc_fd5_ifc_line04_dy_encode(double value)
{
    return (uint16_t)((value - -30.0) / 0.01);
}

double b30_001_ifc_fd5_ifc_line04_dy_decode(uint16_t value)
{
    return (((double)value * 0.01) + -30.0);
}

bool b30_001_ifc_fd5_ifc_line04_dy_is_in_range(uint16_t value)
{
    return (value <= 6000u);
}

uint16_t b30_001_ifc_fd5_ifc_line04_curv_encode(double value)
{
    return (uint16_t)((value - -0.25) / 1.6e-05);
}

double b30_001_ifc_fd5_ifc_line04_curv_decode(uint16_t value)
{
    return (((double)value * 1.6e-05) + -0.25);
}

bool b30_001_ifc_fd5_ifc_line04_curv_is_in_range(uint16_t value)
{
    return (value <= 31250u);
}

uint32_t b30_001_ifc_fd5_ifc_line04_curv_change_encode(double value)
{
    return (uint32_t)((value - -0.024) / 5e-08);
}

double b30_001_ifc_fd5_ifc_line04_curv_change_decode(uint32_t value)
{
    return (((double)value * 5e-08) + -0.024);
}

bool b30_001_ifc_fd5_ifc_line04_curv_change_is_in_range(uint32_t value)
{
    return (value <= 960000u);
}

uint8_t b30_001_ifc_fd5_ifc_line04_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd5_ifc_line04_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd5_ifc_line04_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t b30_001_ifc_fd5_ifc_roadedge01_dy_encode(double value)
{
    return (uint16_t)((value - -30.0) / 0.01);
}

double b30_001_ifc_fd5_ifc_roadedge01_dy_decode(uint16_t value)
{
    return (((double)value * 0.01) + -30.0);
}

bool b30_001_ifc_fd5_ifc_roadedge01_dy_is_in_range(uint16_t value)
{
    return (value <= 6000u);
}

uint16_t b30_001_ifc_fd5_ifc_roadedge01_curv_encode(double value)
{
    return (uint16_t)((value - -0.25) / 1.6e-05);
}

double b30_001_ifc_fd5_ifc_roadedge01_curv_decode(uint16_t value)
{
    return (((double)value * 1.6e-05) + -0.25);
}

bool b30_001_ifc_fd5_ifc_roadedge01_curv_is_in_range(uint16_t value)
{
    return (value <= 31250u);
}

uint32_t b30_001_ifc_fd5_ifc_roadedge01_curv_change_encode(double value)
{
    return (uint32_t)((value - -0.024) / 5e-08);
}

double b30_001_ifc_fd5_ifc_roadedge01_curv_change_decode(uint32_t value)
{
    return (((double)value * 5e-08) + -0.024);
}

bool b30_001_ifc_fd5_ifc_roadedge01_curv_change_is_in_range(uint32_t value)
{
    return (value <= 960000u);
}

uint8_t b30_001_ifc_fd5_ifc_roadedge01_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd5_ifc_roadedge01_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd5_ifc_roadedge01_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint16_t b30_001_ifc_fd5_ifc_roadedge02_dy_encode(double value)
{
    return (uint16_t)((value - -30.0) / 0.01);
}

double b30_001_ifc_fd5_ifc_roadedge02_dy_decode(uint16_t value)
{
    return (((double)value * 0.01) + -30.0);
}

bool b30_001_ifc_fd5_ifc_roadedge02_dy_is_in_range(uint16_t value)
{
    return (value <= 6000u);
}

uint16_t b30_001_ifc_fd5_ifc_roadedge02_curv_encode(double value)
{
    return (uint16_t)((value - -0.25) / 1.6e-05);
}

double b30_001_ifc_fd5_ifc_roadedge02_curv_decode(uint16_t value)
{
    return (((double)value * 1.6e-05) + -0.25);
}

bool b30_001_ifc_fd5_ifc_roadedge02_curv_is_in_range(uint16_t value)
{
    return (value <= 31250u);
}

uint32_t b30_001_ifc_fd5_ifc_roadedge02_curv_change_encode(double value)
{
    return (uint32_t)((value - -0.024) / 5e-08);
}

double b30_001_ifc_fd5_ifc_roadedge02_curv_change_decode(uint32_t value)
{
    return (((double)value * 5e-08) + -0.024);
}

bool b30_001_ifc_fd5_ifc_roadedge02_curv_change_is_in_range(uint32_t value)
{
    return (value <= 960000u);
}

uint8_t b30_001_ifc_fd5_ifc_roadedge02_type_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_ifc_fd5_ifc_roadedge02_type_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_ifc_fd5_ifc_roadedge02_type_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

int b30_001_ifc_fd6_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_fd6_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_right_shift_u16(src_p->ifc_line01_dx_start, 7u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->ifc_line01_dx_start, 1u, 0xfeu);
    dst_p[2] |= pack_right_shift_u16(src_p->ifc_line01_dx_end, 14u, 0x01u);
    dst_p[3] |= pack_right_shift_u16(src_p->ifc_line01_dx_end, 6u, 0xffu);
    dst_p[4] |= pack_left_shift_u16(src_p->ifc_line01_dx_end, 2u, 0xfcu);
    dst_p[4] |= pack_right_shift_u16(src_p->ifc_line01_heading_angle, 7u, 0x03u);
    dst_p[5] |= pack_left_shift_u16(src_p->ifc_line01_heading_angle, 1u, 0xfeu);
    dst_p[5] |= pack_right_shift_u16(src_p->ifc_line02_heading_angle, 8u, 0x01u);
    dst_p[6] |= pack_left_shift_u16(src_p->ifc_line02_heading_angle, 0u, 0xffu);
    dst_p[9] |= pack_right_shift_u16(src_p->ifc_line02_dx_start, 7u, 0xffu);
    dst_p[10] |= pack_left_shift_u16(src_p->ifc_line02_dx_start, 1u, 0xfeu);
    dst_p[11] |= pack_right_shift_u16(src_p->ifc_line02_dx_end, 7u, 0xffu);
    dst_p[12] |= pack_left_shift_u16(src_p->ifc_line02_dx_end, 1u, 0xfeu);
    dst_p[13] |= pack_right_shift_u16(src_p->ifc_line03_dx_start, 7u, 0xffu);
    dst_p[14] |= pack_left_shift_u16(src_p->ifc_line03_dx_start, 1u, 0xfeu);
    dst_p[17] |= pack_right_shift_u16(src_p->ifc_line03_dx_end, 7u, 0xffu);
    dst_p[18] |= pack_left_shift_u16(src_p->ifc_line03_dx_end, 1u, 0xfeu);
    dst_p[18] |= pack_right_shift_u16(src_p->ifc_line03_heading_angle, 8u, 0x01u);
    dst_p[19] |= pack_left_shift_u16(src_p->ifc_line03_heading_angle, 0u, 0xffu);
    dst_p[20] |= pack_right_shift_u16(src_p->ifc_line04_dx_start, 7u, 0xffu);
    dst_p[21] |= pack_left_shift_u16(src_p->ifc_line04_dx_start, 1u, 0xfeu);
    dst_p[21] |= pack_right_shift_u16(src_p->ifc_line04_heading_angle, 8u, 0x01u);
    dst_p[22] |= pack_left_shift_u16(src_p->ifc_line04_heading_angle, 0u, 0xffu);
    dst_p[25] |= pack_right_shift_u16(src_p->ifc_line04_dx_end, 7u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->ifc_line04_dx_end, 1u, 0xfeu);
    dst_p[27] |= pack_right_shift_u16(src_p->ifc_roadedge01_dx_start, 7u, 0xffu);
    dst_p[28] |= pack_left_shift_u16(src_p->ifc_roadedge01_dx_start, 1u, 0xfeu);
    dst_p[29] |= pack_right_shift_u16(src_p->ifc_roadedge01_dx_end, 7u, 0xffu);
    dst_p[30] |= pack_left_shift_u16(src_p->ifc_roadedge01_dx_end, 1u, 0xfeu);
    dst_p[33] |= pack_right_shift_u16(src_p->ifc_roadedge01_heading_angle, 1u, 0xffu);
    dst_p[34] |= pack_left_shift_u16(src_p->ifc_roadedge01_heading_angle, 7u, 0x80u);
    dst_p[34] |= pack_right_shift_u16(src_p->ifc_roadedge02_dx_start, 8u, 0x7fu);
    dst_p[35] |= pack_left_shift_u16(src_p->ifc_roadedge02_dx_start, 0u, 0xffu);
    dst_p[36] |= pack_right_shift_u16(src_p->ifc_roadedge02_dx_end, 7u, 0xffu);
    dst_p[37] |= pack_left_shift_u16(src_p->ifc_roadedge02_dx_end, 1u, 0xfeu);
    dst_p[37] |= pack_right_shift_u16(src_p->ifc_roadedge02_heading_angle, 8u, 0x01u);
    dst_p[38] |= pack_left_shift_u16(src_p->ifc_roadedge02_heading_angle, 0u, 0xffu);

    return (64);
}

int b30_001_ifc_fd6_unpack(
    struct b30_001_ifc_fd6_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->ifc_line01_dx_start = unpack_left_shift_u16(src_p[1], 7u, 0xffu);
    dst_p->ifc_line01_dx_start |= unpack_right_shift_u16(src_p[2], 1u, 0xfeu);
    dst_p->ifc_line01_dx_end = unpack_left_shift_u16(src_p[2], 14u, 0x01u);
    dst_p->ifc_line01_dx_end |= unpack_left_shift_u16(src_p[3], 6u, 0xffu);
    dst_p->ifc_line01_dx_end |= unpack_right_shift_u16(src_p[4], 2u, 0xfcu);
    dst_p->ifc_line01_heading_angle = unpack_left_shift_u16(src_p[4], 7u, 0x03u);
    dst_p->ifc_line01_heading_angle |= unpack_right_shift_u16(src_p[5], 1u, 0xfeu);
    dst_p->ifc_line02_heading_angle = unpack_left_shift_u16(src_p[5], 8u, 0x01u);
    dst_p->ifc_line02_heading_angle |= unpack_right_shift_u16(src_p[6], 0u, 0xffu);
    dst_p->ifc_line02_dx_start = unpack_left_shift_u16(src_p[9], 7u, 0xffu);
    dst_p->ifc_line02_dx_start |= unpack_right_shift_u16(src_p[10], 1u, 0xfeu);
    dst_p->ifc_line02_dx_end = unpack_left_shift_u16(src_p[11], 7u, 0xffu);
    dst_p->ifc_line02_dx_end |= unpack_right_shift_u16(src_p[12], 1u, 0xfeu);
    dst_p->ifc_line03_dx_start = unpack_left_shift_u16(src_p[13], 7u, 0xffu);
    dst_p->ifc_line03_dx_start |= unpack_right_shift_u16(src_p[14], 1u, 0xfeu);
    dst_p->ifc_line03_dx_end = unpack_left_shift_u16(src_p[17], 7u, 0xffu);
    dst_p->ifc_line03_dx_end |= unpack_right_shift_u16(src_p[18], 1u, 0xfeu);
    dst_p->ifc_line03_heading_angle = unpack_left_shift_u16(src_p[18], 8u, 0x01u);
    dst_p->ifc_line03_heading_angle |= unpack_right_shift_u16(src_p[19], 0u, 0xffu);
    dst_p->ifc_line04_dx_start = unpack_left_shift_u16(src_p[20], 7u, 0xffu);
    dst_p->ifc_line04_dx_start |= unpack_right_shift_u16(src_p[21], 1u, 0xfeu);
    dst_p->ifc_line04_heading_angle = unpack_left_shift_u16(src_p[21], 8u, 0x01u);
    dst_p->ifc_line04_heading_angle |= unpack_right_shift_u16(src_p[22], 0u, 0xffu);
    dst_p->ifc_line04_dx_end = unpack_left_shift_u16(src_p[25], 7u, 0xffu);
    dst_p->ifc_line04_dx_end |= unpack_right_shift_u16(src_p[26], 1u, 0xfeu);
    dst_p->ifc_roadedge01_dx_start = unpack_left_shift_u16(src_p[27], 7u, 0xffu);
    dst_p->ifc_roadedge01_dx_start |= unpack_right_shift_u16(src_p[28], 1u, 0xfeu);
    dst_p->ifc_roadedge01_dx_end = unpack_left_shift_u16(src_p[29], 7u, 0xffu);
    dst_p->ifc_roadedge01_dx_end |= unpack_right_shift_u16(src_p[30], 1u, 0xfeu);
    dst_p->ifc_roadedge01_heading_angle = unpack_left_shift_u16(src_p[33], 1u, 0xffu);
    dst_p->ifc_roadedge01_heading_angle |= unpack_right_shift_u16(src_p[34], 7u, 0x80u);
    dst_p->ifc_roadedge02_dx_start = unpack_left_shift_u16(src_p[34], 8u, 0x7fu);
    dst_p->ifc_roadedge02_dx_start |= unpack_right_shift_u16(src_p[35], 0u, 0xffu);
    dst_p->ifc_roadedge02_dx_end = unpack_left_shift_u16(src_p[36], 7u, 0xffu);
    dst_p->ifc_roadedge02_dx_end |= unpack_right_shift_u16(src_p[37], 1u, 0xfeu);
    dst_p->ifc_roadedge02_heading_angle = unpack_left_shift_u16(src_p[37], 8u, 0x01u);
    dst_p->ifc_roadedge02_heading_angle |= unpack_right_shift_u16(src_p[38], 0u, 0xffu);

    return (0);
}

int b30_001_ifc_fd6_init(struct b30_001_ifc_fd6_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_fd6_t));
    msg_p->ifc_line01_dx_start = 0.0;
    msg_p->ifc_line01_dx_end = 0.0;
    msg_p->ifc_line01_heading_angle = 201.0;
    msg_p->ifc_line02_heading_angle = 201.0;
    msg_p->ifc_line02_dx_start = 0.0;
    msg_p->ifc_line02_dx_end = 0.0;
    msg_p->ifc_line03_dx_start = 0.0;
    msg_p->ifc_line03_dx_end = 0.0;
    msg_p->ifc_line03_heading_angle = 201.0;
    msg_p->ifc_line04_dx_start = 0.0;
    msg_p->ifc_line04_heading_angle = 201.0;
    msg_p->ifc_line04_dx_end = 0.0;
    msg_p->ifc_roadedge01_dx_start = 0.0;
    msg_p->ifc_roadedge01_dx_end = 0.0;
    msg_p->ifc_roadedge01_heading_angle = 201.0;
    msg_p->ifc_roadedge02_dx_start = 0.0;
    msg_p->ifc_roadedge02_dx_end = 0.0;
    msg_p->ifc_roadedge02_heading_angle = 201.0;

    return 0;
}

uint16_t b30_001_ifc_fd6_ifc_line01_dx_start_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line01_dx_start_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line01_dx_start_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line01_dx_end_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line01_dx_end_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line01_dx_end_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line01_heading_angle_encode(double value)
{
    return (uint16_t)((value - -2.0) / 0.01);
}

double b30_001_ifc_fd6_ifc_line01_heading_angle_decode(uint16_t value)
{
    return (((double)value * 0.01) + -2.0);
}

bool b30_001_ifc_fd6_ifc_line01_heading_angle_is_in_range(uint16_t value)
{
    return (value <= 400u);
}

uint16_t b30_001_ifc_fd6_ifc_line02_heading_angle_encode(double value)
{
    return (uint16_t)((value - -2.0) / 0.01);
}

double b30_001_ifc_fd6_ifc_line02_heading_angle_decode(uint16_t value)
{
    return (((double)value * 0.01) + -2.0);
}

bool b30_001_ifc_fd6_ifc_line02_heading_angle_is_in_range(uint16_t value)
{
    return (value <= 400u);
}

uint16_t b30_001_ifc_fd6_ifc_line02_dx_start_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line02_dx_start_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line02_dx_start_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line02_dx_end_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line02_dx_end_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line02_dx_end_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line03_dx_start_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line03_dx_start_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line03_dx_start_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line03_dx_end_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line03_dx_end_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line03_dx_end_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line03_heading_angle_encode(double value)
{
    return (uint16_t)((value - -2.0) / 0.01);
}

double b30_001_ifc_fd6_ifc_line03_heading_angle_decode(uint16_t value)
{
    return (((double)value * 0.01) + -2.0);
}

bool b30_001_ifc_fd6_ifc_line03_heading_angle_is_in_range(uint16_t value)
{
    return (value <= 400u);
}

uint16_t b30_001_ifc_fd6_ifc_line04_dx_start_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line04_dx_start_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line04_dx_start_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_line04_heading_angle_encode(double value)
{
    return (uint16_t)((value - -2.0) / 0.01);
}

double b30_001_ifc_fd6_ifc_line04_heading_angle_decode(uint16_t value)
{
    return (((double)value * 0.01) + -2.0);
}

bool b30_001_ifc_fd6_ifc_line04_heading_angle_is_in_range(uint16_t value)
{
    return (value <= 400u);
}

uint16_t b30_001_ifc_fd6_ifc_line04_dx_end_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_line04_dx_end_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_line04_dx_end_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_roadedge01_dx_start_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_roadedge01_dx_start_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_roadedge01_dx_start_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_roadedge01_dx_end_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_roadedge01_dx_end_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_roadedge01_dx_end_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_roadedge01_heading_angle_encode(double value)
{
    return (uint16_t)((value - -2.0) / 0.01);
}

double b30_001_ifc_fd6_ifc_roadedge01_heading_angle_decode(uint16_t value)
{
    return (((double)value * 0.01) + -2.0);
}

bool b30_001_ifc_fd6_ifc_roadedge01_heading_angle_is_in_range(uint16_t value)
{
    return (value <= 400u);
}

uint16_t b30_001_ifc_fd6_ifc_roadedge02_dx_start_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_roadedge02_dx_start_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_roadedge02_dx_start_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_roadedge02_dx_end_encode(double value)
{
    return (uint16_t)(value / 0.01);
}

double b30_001_ifc_fd6_ifc_roadedge02_dx_end_decode(uint16_t value)
{
    return ((double)value * 0.01);
}

bool b30_001_ifc_fd6_ifc_roadedge02_dx_end_is_in_range(uint16_t value)
{
    return (value <= 20000u);
}

uint16_t b30_001_ifc_fd6_ifc_roadedge02_heading_angle_encode(double value)
{
    return (uint16_t)((value - -2.0) / 0.01);
}

double b30_001_ifc_fd6_ifc_roadedge02_heading_angle_decode(uint16_t value)
{
    return (((double)value * 0.01) + -2.0);
}

bool b30_001_ifc_fd6_ifc_roadedge02_heading_angle_is_in_range(uint16_t value)
{
    return (value <= 400u);
}

int b30_001_pdcm1_pack(
    uint8_t *dst_p,
    const struct b30_001_pdcm1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->pass_mirr_fold_unfold_sts, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->rsds_pass_led_sts, 0u, 0x01u);

    return (8);
}

int b30_001_pdcm1_unpack(
    struct b30_001_pdcm1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->pass_mirr_fold_unfold_sts = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->rsds_pass_led_sts = unpack_right_shift_u8(src_p[1], 0u, 0x01u);

    return (0);
}

int b30_001_pdcm1_init(struct b30_001_pdcm1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_pdcm1_t));
    msg_p->pass_mirr_fold_unfold_sts = 0.0;
    msg_p->rsds_pass_led_sts = 0.0;

    return 0;
}

uint8_t b30_001_pdcm1_pass_mirr_fold_unfold_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_pdcm1_pass_mirr_fold_unfold_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_pdcm1_pass_mirr_fold_unfold_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_pdcm1_rsds_pass_led_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_pdcm1_rsds_pass_led_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_pdcm1_rsds_pass_led_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_peps2_pack(
    uint8_t *dst_p,
    const struct b30_001_peps2_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_left_shift_u8(src_p->sys_power_mod, 6u, 0xc0u);
    dst_p[1] |= pack_left_shift_u8(src_p->sys_power_mod_vld, 5u, 0x20u);

    return (8);
}

int b30_001_peps2_unpack(
    struct b30_001_peps2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->sys_power_mod = unpack_right_shift_u8(src_p[1], 6u, 0xc0u);
    dst_p->sys_power_mod_vld = unpack_right_shift_u8(src_p[1], 5u, 0x20u);

    return (0);
}

int b30_001_peps2_init(struct b30_001_peps2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_peps2_t));
    msg_p->sys_power_mod = 0.0;
    msg_p->sys_power_mod_vld = 0.0;

    return 0;
}

uint8_t b30_001_peps2_sys_power_mod_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_peps2_sys_power_mod_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_peps2_sys_power_mod_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_peps2_sys_power_mod_vld_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_peps2_sys_power_mod_vld_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_peps2_sys_power_mod_vld_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_r_p_box1_pack(
    uint8_t *dst_p,
    const struct b30_001_r_p_box1_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[1] |= pack_left_shift_u8(src_p->hi_posn_brk_lmp_fail_sts, 7u, 0x80u);
    dst_p[1] |= pack_left_shift_u8(src_p->l_brk_lmp_fail_sts, 5u, 0x20u);
    dst_p[1] |= pack_left_shift_u8(src_p->r_brk_lmp_fail_sts, 4u, 0x10u);
    dst_p[1] |= pack_left_shift_u8(src_p->posn_lmp_outp_sts_r_pbox, 3u, 0x08u);
    dst_p[3] |= pack_left_shift_u8(src_p->l_turn_lmp_sts_r_pbox, 7u, 0x80u);
    dst_p[3] |= pack_left_shift_u8(src_p->r_turn_lmp_sts_r_pbox, 6u, 0x40u);
    dst_p[3] |= pack_left_shift_u8(src_p->r_fog_lmp_fail_sts_r_pbox, 5u, 0x20u);
    dst_p[3] |= pack_left_shift_u8(src_p->r_fog_lmp_sts_r_pbox, 4u, 0x10u);

    return (16);
}

int b30_001_r_p_box1_unpack(
    struct b30_001_r_p_box1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->hi_posn_brk_lmp_fail_sts = unpack_right_shift_u8(src_p[1], 7u, 0x80u);
    dst_p->l_brk_lmp_fail_sts = unpack_right_shift_u8(src_p[1], 5u, 0x20u);
    dst_p->r_brk_lmp_fail_sts = unpack_right_shift_u8(src_p[1], 4u, 0x10u);
    dst_p->posn_lmp_outp_sts_r_pbox = unpack_right_shift_u8(src_p[1], 3u, 0x08u);
    dst_p->l_turn_lmp_sts_r_pbox = unpack_right_shift_u8(src_p[3], 7u, 0x80u);
    dst_p->r_turn_lmp_sts_r_pbox = unpack_right_shift_u8(src_p[3], 6u, 0x40u);
    dst_p->r_fog_lmp_fail_sts_r_pbox = unpack_right_shift_u8(src_p[3], 5u, 0x20u);
    dst_p->r_fog_lmp_sts_r_pbox = unpack_right_shift_u8(src_p[3], 4u, 0x10u);

    return (0);
}

int b30_001_r_p_box1_init(struct b30_001_r_p_box1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_r_p_box1_t));
    msg_p->hi_posn_brk_lmp_fail_sts = 0.0;
    msg_p->l_brk_lmp_fail_sts = 0.0;
    msg_p->r_brk_lmp_fail_sts = 0.0;
    msg_p->posn_lmp_outp_sts_r_pbox = 0.0;
    msg_p->l_turn_lmp_sts_r_pbox = 0.0;
    msg_p->r_turn_lmp_sts_r_pbox = 0.0;
    msg_p->r_fog_lmp_fail_sts_r_pbox = 0.0;
    msg_p->r_fog_lmp_sts_r_pbox = 0.0;

    return 0;
}

uint8_t b30_001_r_p_box1_hi_posn_brk_lmp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_hi_posn_brk_lmp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_hi_posn_brk_lmp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_l_brk_lmp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_l_brk_lmp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_l_brk_lmp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_r_brk_lmp_fail_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_r_brk_lmp_fail_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_r_brk_lmp_fail_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_posn_lmp_outp_sts_r_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_posn_lmp_outp_sts_r_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_posn_lmp_outp_sts_r_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_l_turn_lmp_sts_r_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_l_turn_lmp_sts_r_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_l_turn_lmp_sts_r_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_r_turn_lmp_sts_r_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_r_turn_lmp_sts_r_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_r_turn_lmp_sts_r_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_r_fog_lmp_fail_sts_r_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_r_fog_lmp_fail_sts_r_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_r_fog_lmp_fail_sts_r_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_r_p_box1_r_fog_lmp_sts_r_pbox_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_r_p_box1_r_fog_lmp_sts_r_pbox_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_r_p_box1_r_fog_lmp_sts_r_pbox_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_rsds_fd1_pack(
    uint8_t *dst_p,
    const struct b30_001_rsds_fd1_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_right_shift_u16(src_p->rsds_obj_rel_accel_y_le, 2u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->rsds_obj_rel_accel_y_le, 6u, 0xc0u);
    dst_p[8] |= pack_left_shift_u8(src_p->checksum_rsds_r_2, 0u, 0xffu);
    dst_p[9] |= pack_left_shift_u8(src_p->rsds_brk_err_sts, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->rsds_brkg_req, 6u, 0x40u);
    dst_p[9] |= pack_right_shift_u8(src_p->rsds_brkg_req_val, 2u, 0x3fu);
    dst_p[10] |= pack_left_shift_u8(src_p->rsds_brkg_req_val, 6u, 0xc0u);
    dst_p[10] |= pack_left_shift_u8(src_p->rsds_led_light_req_left, 4u, 0x30u);
    dst_p[10] |= pack_left_shift_u8(src_p->rsds_led_light_req_right, 2u, 0x0cu);
    dst_p[10] |= pack_left_shift_u8(src_p->rsds_ip_sound_req, 0u, 0x03u);
    dst_p[11] |= pack_left_shift_u8(src_p->bsd_lca_warning_req_right, 6u, 0xc0u);
    dst_p[11] |= pack_left_shift_u8(src_p->bsd_lca_warning_reqleft, 4u, 0x30u);
    dst_p[11] |= pack_left_shift_u8(src_p->dow_warning_req_right, 2u, 0x0cu);
    dst_p[11] |= pack_left_shift_u8(src_p->dow_warning_reqleft, 0u, 0x03u);
    dst_p[13] |= pack_left_shift_u8(src_p->rsds_rcw_trigger, 0u, 0x03u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_err_sts, 7u, 0x80u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_brkg_trig, 6u, 0x40u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_bli_sts, 5u, 0x20u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_trailer_sts, 4u, 0x10u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_lca_resp, 3u, 0x08u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_dow_resp, 2u, 0x04u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_rcw_resp, 1u, 0x02u);
    dst_p[14] |= pack_left_shift_u8(src_p->rsds_rcta_resp, 0u, 0x01u);
    dst_p[15] |= pack_left_shift_u8(src_p->rsds_rcta_brk_resp, 7u, 0x80u);
    dst_p[15] |= pack_left_shift_u8(src_p->rsds_cta_actv, 6u, 0x40u);
    dst_p[15] |= pack_left_shift_u8(src_p->rcta_warning_req_right, 5u, 0x20u);
    dst_p[15] |= pack_left_shift_u8(src_p->rcta_warning_req_left, 4u, 0x10u);
    dst_p[15] |= pack_left_shift_u8(src_p->rolling_counter_rsds_r_2, 0u, 0x0fu);
    dst_p[16] |= pack_left_shift_u8(src_p->checksum_rsds_r_3, 0u, 0xffu);
    dst_p[17] |= pack_left_shift_u8(src_p->le_tar_sts, 6u, 0xc0u);
    dst_p[17] |= pack_left_shift_u8(src_p->obj_id_le, 0u, 0x3fu);
    dst_p[18] |= pack_right_shift_u16(src_p->obj_lgt_posn_curv_le, 2u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->obj_lgt_posn_curv_le, 6u, 0xc0u);
    dst_p[19] |= pack_right_shift_u8(src_p->obj_lat_posn_curv_le, 2u, 0x3fu);
    dst_p[20] |= pack_left_shift_u8(src_p->obj_lat_posn_curv_le, 6u, 0xc0u);
    dst_p[20] |= pack_right_shift_u16(src_p->obj_lgt_spd_curv_le, 4u, 0x3fu);
    dst_p[21] |= pack_left_shift_u16(src_p->obj_lgt_spd_curv_le, 4u, 0xf0u);
    dst_p[21] |= pack_right_shift_u8(src_p->obj_lat_spd_curv_le, 3u, 0x0fu);
    dst_p[22] |= pack_left_shift_u8(src_p->obj_lat_spd_curv_le, 5u, 0xe0u);
    dst_p[22] |= pack_right_shift_u8(src_p->obj_ttc_le, 2u, 0x1fu);
    dst_p[23] |= pack_left_shift_u8(src_p->obj_ttc_le, 6u, 0xc0u);
    dst_p[23] |= pack_left_shift_u8(src_p->rolling_counter_rsds_r_3, 0u, 0x0fu);
    dst_p[24] |= pack_left_shift_u8(src_p->checksum_rsds_r_4, 0u, 0xffu);
    dst_p[25] |= pack_left_shift_u8(src_p->obj_len_le, 4u, 0xf0u);
    dst_p[25] |= pack_left_shift_u8(src_p->obj_width_le, 1u, 0x0eu);
    dst_p[25] |= pack_left_shift_u8(src_p->obj_staty_le, 0u, 0x01u);
    dst_p[26] |= pack_left_shift_u8(src_p->zone_ind_le, 6u, 0xc0u);
    dst_p[26] |= pack_left_shift_u8(src_p->obj_sts_le, 4u, 0x30u);
    dst_p[26] |= pack_left_shift_u8(src_p->obj_rin_ri, 0u, 0x0fu);
    dst_p[27] |= pack_left_shift_u8(src_p->obj_width_ri, 5u, 0xe0u);
    dst_p[27] |= pack_left_shift_u8(src_p->obj_staty_ri, 4u, 0x10u);
    dst_p[27] |= pack_left_shift_u8(src_p->zone_ind_ri, 2u, 0x0cu);
    dst_p[27] |= pack_left_shift_u8(src_p->obj_sts_ri, 0u, 0x03u);
    dst_p[31] |= pack_left_shift_u8(src_p->rolling_counter_rsds_r_4, 0u, 0x0fu);
    dst_p[32] |= pack_left_shift_u8(src_p->checksum_rsds_r_5, 0u, 0xffu);
    dst_p[33] |= pack_left_shift_u8(src_p->ri_tar_sts, 6u, 0xc0u);
    dst_p[33] |= pack_left_shift_u8(src_p->obj_id_ri, 0u, 0x3fu);
    dst_p[34] |= pack_right_shift_u16(src_p->obj_lgt_posn_curv_ri, 2u, 0xffu);
    dst_p[35] |= pack_left_shift_u16(src_p->obj_lgt_posn_curv_ri, 6u, 0xc0u);
    dst_p[35] |= pack_right_shift_u8(src_p->obj_lat_posn_curv_ri, 2u, 0x3fu);
    dst_p[36] |= pack_left_shift_u8(src_p->obj_lat_posn_curv_ri, 6u, 0xc0u);
    dst_p[36] |= pack_right_shift_u16(src_p->obj_lgt_spd_curv_ri, 4u, 0x3fu);
    dst_p[37] |= pack_left_shift_u16(src_p->obj_lgt_spd_curv_ri, 4u, 0xf0u);
    dst_p[37] |= pack_right_shift_u8(src_p->obj_lat_spd_curv_ri, 3u, 0x0fu);
    dst_p[38] |= pack_left_shift_u8(src_p->obj_lat_spd_curv_ri, 5u, 0xe0u);
    dst_p[38] |= pack_right_shift_u8(src_p->obj_ttc_ri, 2u, 0x1fu);
    dst_p[39] |= pack_left_shift_u8(src_p->obj_ttc_ri, 6u, 0xc0u);
    dst_p[39] |= pack_left_shift_u8(src_p->rolling_counter_rsds_r_5, 0u, 0x0fu);
    dst_p[41] |= pack_left_shift_u8(src_p->rsds_obj_dist_x_std_le, 3u, 0xf8u);
    dst_p[41] |= pack_right_shift_u8(src_p->rsds_obj_dist_y_std_le, 2u, 0x07u);
    dst_p[42] |= pack_left_shift_u8(src_p->rsds_obj_dist_y_std_le, 6u, 0xc0u);
    dst_p[42] |= pack_left_shift_u8(src_p->rsds_obj_rel_vel_x_std_le, 1u, 0x3eu);
    dst_p[42] |= pack_right_shift_u8(src_p->rsds_obj_rel_vel_y_std_le, 4u, 0x01u);
    dst_p[43] |= pack_left_shift_u8(src_p->rsds_obj_rel_vel_y_std_le, 4u, 0xf0u);
    dst_p[43] |= pack_right_shift_u8(src_p->rsds_obj_r_accel_x_std_le, 1u, 0x0fu);
    dst_p[44] |= pack_left_shift_u8(src_p->rsds_obj_r_accel_x_std_le, 7u, 0x80u);
    dst_p[44] |= pack_left_shift_u8(src_p->rsds_obj_r_accel_y_std_le, 2u, 0x7cu);
    dst_p[44] |= pack_right_shift_u8(src_p->rsds_obj_dist_x_std_ri, 3u, 0x03u);
    dst_p[45] |= pack_left_shift_u8(src_p->rsds_obj_dist_x_std_ri, 5u, 0xe0u);
    dst_p[45] |= pack_left_shift_u8(src_p->rsds_obj_dist_y_std_ri, 0u, 0x1fu);
    dst_p[46] |= pack_left_shift_u8(src_p->rsds_obj_rel_vel_x_std_ri, 3u, 0xf8u);
    dst_p[49] |= pack_left_shift_u8(src_p->rsds_obj_rel_vel_y_std_ri, 3u, 0xf8u);
    dst_p[49] |= pack_right_shift_u8(src_p->rsds_obj_r_accel_x_std_ri, 2u, 0x07u);
    dst_p[50] |= pack_left_shift_u8(src_p->rsds_obj_r_accel_x_std_ri, 6u, 0xc0u);
    dst_p[50] |= pack_left_shift_u8(src_p->rsds_obj_r_accel_y_std_ri, 1u, 0x3eu);
    dst_p[51] |= pack_right_shift_u16(src_p->rsds_obj_rel_accel_x_le, 2u, 0xffu);
    dst_p[52] |= pack_left_shift_u16(src_p->rsds_obj_rel_accel_x_le, 6u, 0xc0u);
    dst_p[52] |= pack_right_shift_u16(src_p->rsds_obj_rel_accel_x_ri, 4u, 0x3fu);
    dst_p[53] |= pack_left_shift_u16(src_p->rsds_obj_rel_accel_x_ri, 4u, 0xf0u);
    dst_p[53] |= pack_right_shift_u16(src_p->rsds_obj_rel_accel_y_ri, 6u, 0x0fu);
    dst_p[54] |= pack_left_shift_u16(src_p->rsds_obj_rel_accel_y_ri, 2u, 0xfcu);

    return (64);
}

int b30_001_rsds_fd1_unpack(
    struct b30_001_rsds_fd1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->rsds_obj_rel_accel_y_le = unpack_left_shift_u16(src_p[1], 2u, 0xffu);
    dst_p->rsds_obj_rel_accel_y_le |= unpack_right_shift_u16(src_p[2], 6u, 0xc0u);
    dst_p->checksum_rsds_r_2 = unpack_right_shift_u8(src_p[8], 0u, 0xffu);
    dst_p->rsds_brk_err_sts = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->rsds_brkg_req = unpack_right_shift_u8(src_p[9], 6u, 0x40u);
    dst_p->rsds_brkg_req_val = unpack_left_shift_u8(src_p[9], 2u, 0x3fu);
    dst_p->rsds_brkg_req_val |= unpack_right_shift_u8(src_p[10], 6u, 0xc0u);
    dst_p->rsds_led_light_req_left = unpack_right_shift_u8(src_p[10], 4u, 0x30u);
    dst_p->rsds_led_light_req_right = unpack_right_shift_u8(src_p[10], 2u, 0x0cu);
    dst_p->rsds_ip_sound_req = unpack_right_shift_u8(src_p[10], 0u, 0x03u);
    dst_p->bsd_lca_warning_req_right = unpack_right_shift_u8(src_p[11], 6u, 0xc0u);
    dst_p->bsd_lca_warning_reqleft = unpack_right_shift_u8(src_p[11], 4u, 0x30u);
    dst_p->dow_warning_req_right = unpack_right_shift_u8(src_p[11], 2u, 0x0cu);
    dst_p->dow_warning_reqleft = unpack_right_shift_u8(src_p[11], 0u, 0x03u);
    dst_p->rsds_rcw_trigger = unpack_right_shift_u8(src_p[13], 0u, 0x03u);
    dst_p->rsds_err_sts = unpack_right_shift_u8(src_p[14], 7u, 0x80u);
    dst_p->rsds_brkg_trig = unpack_right_shift_u8(src_p[14], 6u, 0x40u);
    dst_p->rsds_bli_sts = unpack_right_shift_u8(src_p[14], 5u, 0x20u);
    dst_p->rsds_trailer_sts = unpack_right_shift_u8(src_p[14], 4u, 0x10u);
    dst_p->rsds_lca_resp = unpack_right_shift_u8(src_p[14], 3u, 0x08u);
    dst_p->rsds_dow_resp = unpack_right_shift_u8(src_p[14], 2u, 0x04u);
    dst_p->rsds_rcw_resp = unpack_right_shift_u8(src_p[14], 1u, 0x02u);
    dst_p->rsds_rcta_resp = unpack_right_shift_u8(src_p[14], 0u, 0x01u);
    dst_p->rsds_rcta_brk_resp = unpack_right_shift_u8(src_p[15], 7u, 0x80u);
    dst_p->rsds_cta_actv = unpack_right_shift_u8(src_p[15], 6u, 0x40u);
    dst_p->rcta_warning_req_right = unpack_right_shift_u8(src_p[15], 5u, 0x20u);
    dst_p->rcta_warning_req_left = unpack_right_shift_u8(src_p[15], 4u, 0x10u);
    dst_p->rolling_counter_rsds_r_2 = unpack_right_shift_u8(src_p[15], 0u, 0x0fu);
    dst_p->checksum_rsds_r_3 = unpack_right_shift_u8(src_p[16], 0u, 0xffu);
    dst_p->le_tar_sts = unpack_right_shift_u8(src_p[17], 6u, 0xc0u);
    dst_p->obj_id_le = unpack_right_shift_u8(src_p[17], 0u, 0x3fu);
    dst_p->obj_lgt_posn_curv_le = unpack_left_shift_u16(src_p[18], 2u, 0xffu);
    dst_p->obj_lgt_posn_curv_le |= unpack_right_shift_u16(src_p[19], 6u, 0xc0u);
    dst_p->obj_lat_posn_curv_le = unpack_left_shift_u8(src_p[19], 2u, 0x3fu);
    dst_p->obj_lat_posn_curv_le |= unpack_right_shift_u8(src_p[20], 6u, 0xc0u);
    dst_p->obj_lgt_spd_curv_le = unpack_left_shift_u16(src_p[20], 4u, 0x3fu);
    dst_p->obj_lgt_spd_curv_le |= unpack_right_shift_u16(src_p[21], 4u, 0xf0u);
    dst_p->obj_lat_spd_curv_le = unpack_left_shift_u8(src_p[21], 3u, 0x0fu);
    dst_p->obj_lat_spd_curv_le |= unpack_right_shift_u8(src_p[22], 5u, 0xe0u);
    dst_p->obj_ttc_le = unpack_left_shift_u8(src_p[22], 2u, 0x1fu);
    dst_p->obj_ttc_le |= unpack_right_shift_u8(src_p[23], 6u, 0xc0u);
    dst_p->rolling_counter_rsds_r_3 = unpack_right_shift_u8(src_p[23], 0u, 0x0fu);
    dst_p->checksum_rsds_r_4 = unpack_right_shift_u8(src_p[24], 0u, 0xffu);
    dst_p->obj_len_le = unpack_right_shift_u8(src_p[25], 4u, 0xf0u);
    dst_p->obj_width_le = unpack_right_shift_u8(src_p[25], 1u, 0x0eu);
    dst_p->obj_staty_le = unpack_right_shift_u8(src_p[25], 0u, 0x01u);
    dst_p->zone_ind_le = unpack_right_shift_u8(src_p[26], 6u, 0xc0u);
    dst_p->obj_sts_le = unpack_right_shift_u8(src_p[26], 4u, 0x30u);
    dst_p->obj_rin_ri = unpack_right_shift_u8(src_p[26], 0u, 0x0fu);
    dst_p->obj_width_ri = unpack_right_shift_u8(src_p[27], 5u, 0xe0u);
    dst_p->obj_staty_ri = unpack_right_shift_u8(src_p[27], 4u, 0x10u);
    dst_p->zone_ind_ri = unpack_right_shift_u8(src_p[27], 2u, 0x0cu);
    dst_p->obj_sts_ri = unpack_right_shift_u8(src_p[27], 0u, 0x03u);
    dst_p->rolling_counter_rsds_r_4 = unpack_right_shift_u8(src_p[31], 0u, 0x0fu);
    dst_p->checksum_rsds_r_5 = unpack_right_shift_u8(src_p[32], 0u, 0xffu);
    dst_p->ri_tar_sts = unpack_right_shift_u8(src_p[33], 6u, 0xc0u);
    dst_p->obj_id_ri = unpack_right_shift_u8(src_p[33], 0u, 0x3fu);
    dst_p->obj_lgt_posn_curv_ri = unpack_left_shift_u16(src_p[34], 2u, 0xffu);
    dst_p->obj_lgt_posn_curv_ri |= unpack_right_shift_u16(src_p[35], 6u, 0xc0u);
    dst_p->obj_lat_posn_curv_ri = unpack_left_shift_u8(src_p[35], 2u, 0x3fu);
    dst_p->obj_lat_posn_curv_ri |= unpack_right_shift_u8(src_p[36], 6u, 0xc0u);
    dst_p->obj_lgt_spd_curv_ri = unpack_left_shift_u16(src_p[36], 4u, 0x3fu);
    dst_p->obj_lgt_spd_curv_ri |= unpack_right_shift_u16(src_p[37], 4u, 0xf0u);
    dst_p->obj_lat_spd_curv_ri = unpack_left_shift_u8(src_p[37], 3u, 0x0fu);
    dst_p->obj_lat_spd_curv_ri |= unpack_right_shift_u8(src_p[38], 5u, 0xe0u);
    dst_p->obj_ttc_ri = unpack_left_shift_u8(src_p[38], 2u, 0x1fu);
    dst_p->obj_ttc_ri |= unpack_right_shift_u8(src_p[39], 6u, 0xc0u);
    dst_p->rolling_counter_rsds_r_5 = unpack_right_shift_u8(src_p[39], 0u, 0x0fu);
    dst_p->rsds_obj_dist_x_std_le = unpack_right_shift_u8(src_p[41], 3u, 0xf8u);
    dst_p->rsds_obj_dist_y_std_le = unpack_left_shift_u8(src_p[41], 2u, 0x07u);
    dst_p->rsds_obj_dist_y_std_le |= unpack_right_shift_u8(src_p[42], 6u, 0xc0u);
    dst_p->rsds_obj_rel_vel_x_std_le = unpack_right_shift_u8(src_p[42], 1u, 0x3eu);
    dst_p->rsds_obj_rel_vel_y_std_le = unpack_left_shift_u8(src_p[42], 4u, 0x01u);
    dst_p->rsds_obj_rel_vel_y_std_le |= unpack_right_shift_u8(src_p[43], 4u, 0xf0u);
    dst_p->rsds_obj_r_accel_x_std_le = unpack_left_shift_u8(src_p[43], 1u, 0x0fu);
    dst_p->rsds_obj_r_accel_x_std_le |= unpack_right_shift_u8(src_p[44], 7u, 0x80u);
    dst_p->rsds_obj_r_accel_y_std_le = unpack_right_shift_u8(src_p[44], 2u, 0x7cu);
    dst_p->rsds_obj_dist_x_std_ri = unpack_left_shift_u8(src_p[44], 3u, 0x03u);
    dst_p->rsds_obj_dist_x_std_ri |= unpack_right_shift_u8(src_p[45], 5u, 0xe0u);
    dst_p->rsds_obj_dist_y_std_ri = unpack_right_shift_u8(src_p[45], 0u, 0x1fu);
    dst_p->rsds_obj_rel_vel_x_std_ri = unpack_right_shift_u8(src_p[46], 3u, 0xf8u);
    dst_p->rsds_obj_rel_vel_y_std_ri = unpack_right_shift_u8(src_p[49], 3u, 0xf8u);
    dst_p->rsds_obj_r_accel_x_std_ri = unpack_left_shift_u8(src_p[49], 2u, 0x07u);
    dst_p->rsds_obj_r_accel_x_std_ri |= unpack_right_shift_u8(src_p[50], 6u, 0xc0u);
    dst_p->rsds_obj_r_accel_y_std_ri = unpack_right_shift_u8(src_p[50], 1u, 0x3eu);
    dst_p->rsds_obj_rel_accel_x_le = unpack_left_shift_u16(src_p[51], 2u, 0xffu);
    dst_p->rsds_obj_rel_accel_x_le |= unpack_right_shift_u16(src_p[52], 6u, 0xc0u);
    dst_p->rsds_obj_rel_accel_x_ri = unpack_left_shift_u16(src_p[52], 4u, 0x3fu);
    dst_p->rsds_obj_rel_accel_x_ri |= unpack_right_shift_u16(src_p[53], 4u, 0xf0u);
    dst_p->rsds_obj_rel_accel_y_ri = unpack_left_shift_u16(src_p[53], 6u, 0x0fu);
    dst_p->rsds_obj_rel_accel_y_ri |= unpack_right_shift_u16(src_p[54], 2u, 0xfcu);

    return (0);
}

int b30_001_rsds_fd1_init(struct b30_001_rsds_fd1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_rsds_fd1_t));
    msg_p->checksum_rsds_r_2 = 0.0;
    msg_p->rsds_brk_err_sts = 0.0;
    msg_p->rsds_brkg_req = 0.0;
    msg_p->rsds_led_light_req_left = 0.0;
    msg_p->rsds_led_light_req_right = 0.0;
    msg_p->rsds_ip_sound_req = 0.0;
    msg_p->bsd_lca_warning_req_right = 0.0;
    msg_p->bsd_lca_warning_reqleft = 0.0;
    msg_p->dow_warning_req_right = 0.0;
    msg_p->dow_warning_reqleft = 0.0;
    msg_p->rsds_rcw_trigger = 0.0;
    msg_p->rsds_err_sts = 0.0;
    msg_p->rsds_brkg_trig = 0.0;
    msg_p->rsds_bli_sts = 0.0;
    msg_p->rsds_trailer_sts = 0.0;
    msg_p->rsds_lca_resp = 0.0;
    msg_p->rsds_dow_resp = 0.0;
    msg_p->rsds_rcw_resp = 0.0;
    msg_p->rsds_rcta_resp = 0.0;
    msg_p->rsds_rcta_brk_resp = 0.0;
    msg_p->rsds_cta_actv = 0.0;
    msg_p->rcta_warning_req_right = 0.0;
    msg_p->rcta_warning_req_left = 0.0;
    msg_p->rolling_counter_rsds_r_2 = 0.0;
    msg_p->checksum_rsds_r_3 = 0.0;
    msg_p->le_tar_sts = 2.0;
    msg_p->obj_id_le = 0.0;
    msg_p->obj_lgt_posn_curv_le = 0.0;
    msg_p->obj_lgt_spd_curv_le = 0.0;
    msg_p->obj_ttc_le = 127.0;
    msg_p->rolling_counter_rsds_r_3 = 0.0;
    msg_p->checksum_rsds_r_4 = 0.0;
    msg_p->obj_len_le = 0.0;
    msg_p->obj_width_le = 0.0;
    msg_p->obj_staty_le = 0.0;
    msg_p->zone_ind_le = 0.0;
    msg_p->obj_sts_le = 0.0;
    msg_p->obj_rin_ri = 0.0;
    msg_p->obj_width_ri = 0.0;
    msg_p->obj_staty_ri = 0.0;
    msg_p->zone_ind_ri = 0.0;
    msg_p->obj_sts_ri = 0.0;
    msg_p->rolling_counter_rsds_r_4 = 0.0;
    msg_p->checksum_rsds_r_5 = 0.0;
    msg_p->ri_tar_sts = 2.0;
    msg_p->obj_id_ri = 0.0;
    msg_p->obj_lgt_posn_curv_ri = 0.0;
    msg_p->obj_lgt_spd_curv_ri = 0.0;
    msg_p->obj_ttc_ri = 127.0;
    msg_p->rolling_counter_rsds_r_5 = 0.0;
    msg_p->rsds_obj_dist_x_std_le = 0.0;
    msg_p->rsds_obj_dist_y_std_le = 0.0;
    msg_p->rsds_obj_rel_vel_x_std_le = 0.0;
    msg_p->rsds_obj_rel_vel_y_std_le = 0.0;
    msg_p->rsds_obj_r_accel_x_std_le = 0.0;
    msg_p->rsds_obj_r_accel_y_std_le = 0.0;
    msg_p->rsds_obj_dist_x_std_ri = 0.0;
    msg_p->rsds_obj_dist_y_std_ri = 0.0;
    msg_p->rsds_obj_rel_vel_x_std_ri = 0.0;
    msg_p->rsds_obj_rel_vel_y_std_ri = 0.0;
    msg_p->rsds_obj_r_accel_x_std_ri = 0.0;
    msg_p->rsds_obj_r_accel_y_std_ri = 0.0;

    return 0;
}

uint16_t b30_001_rsds_fd1_rsds_obj_rel_accel_y_le_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_rsds_fd1_rsds_obj_rel_accel_y_le_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_rsds_fd1_rsds_obj_rel_accel_y_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_rsds_fd1_checksum_rsds_r_2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_checksum_rsds_r_2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_checksum_rsds_r_2_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_rsds_fd1_rsds_brk_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_brk_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_brk_err_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_brkg_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_brkg_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_brkg_req_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_brkg_req_val_encode(double value)
{
    return (uint8_t)((value - -10.0) / 0.05);
}

double b30_001_rsds_fd1_rsds_brkg_req_val_decode(uint8_t value)
{
    return (((double)value * 0.05) + -10.0);
}

bool b30_001_rsds_fd1_rsds_brkg_req_val_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_rsds_fd1_rsds_led_light_req_left_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_led_light_req_left_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_led_light_req_left_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_rsds_led_light_req_right_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_led_light_req_right_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_led_light_req_right_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_rsds_ip_sound_req_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_ip_sound_req_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_ip_sound_req_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_bsd_lca_warning_req_right_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_bsd_lca_warning_req_right_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_bsd_lca_warning_req_right_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_bsd_lca_warning_reqleft_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_bsd_lca_warning_reqleft_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_bsd_lca_warning_reqleft_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_dow_warning_req_right_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_dow_warning_req_right_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_dow_warning_req_right_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_dow_warning_reqleft_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_dow_warning_reqleft_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_dow_warning_reqleft_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_rsds_rcw_trigger_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_rcw_trigger_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_rcw_trigger_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_rsds_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_err_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_brkg_trig_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_brkg_trig_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_brkg_trig_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_bli_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_bli_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_bli_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_trailer_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_trailer_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_trailer_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_lca_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_lca_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_lca_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_dow_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_dow_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_dow_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_rcw_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_rcw_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_rcw_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_rcta_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_rcta_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_rcta_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_rcta_brk_resp_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_rcta_brk_resp_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_rcta_brk_resp_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rsds_cta_actv_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rsds_cta_actv_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rsds_cta_actv_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rcta_warning_req_right_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rcta_warning_req_right_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rcta_warning_req_right_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rcta_warning_req_left_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rcta_warning_req_left_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rcta_warning_req_left_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_rolling_counter_rsds_r_2_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rolling_counter_rsds_r_2_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rolling_counter_rsds_r_2_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_rsds_fd1_checksum_rsds_r_3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_checksum_rsds_r_3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_checksum_rsds_r_3_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_rsds_fd1_le_tar_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_le_tar_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_le_tar_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_obj_id_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_id_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_id_le_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_rsds_fd1_obj_lgt_posn_curv_le_encode(double value)
{
    return (uint16_t)((value - -92.3) / 0.1);
}

double b30_001_rsds_fd1_obj_lgt_posn_curv_le_decode(uint16_t value)
{
    return (((double)value * 0.1) + -92.3);
}

bool b30_001_rsds_fd1_obj_lgt_posn_curv_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_rsds_fd1_obj_lat_posn_curv_le_encode(double value)
{
    return (uint8_t)((value - -12.8) / 0.1);
}

double b30_001_rsds_fd1_obj_lat_posn_curv_le_decode(uint8_t value)
{
    return (((double)value * 0.1) + -12.8);
}

bool b30_001_rsds_fd1_obj_lat_posn_curv_le_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_rsds_fd1_obj_lgt_spd_curv_le_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.1);
}

double b30_001_rsds_fd1_obj_lgt_spd_curv_le_decode(uint16_t value)
{
    return (((double)value * 0.1) + -10.0);
}

bool b30_001_rsds_fd1_obj_lgt_spd_curv_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_rsds_fd1_obj_lat_spd_curv_le_encode(double value)
{
    return (uint8_t)((value - -6.4) / 0.1);
}

double b30_001_rsds_fd1_obj_lat_spd_curv_le_decode(uint8_t value)
{
    return (((double)value * 0.1) + -6.4);
}

bool b30_001_rsds_fd1_obj_lat_spd_curv_le_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_rsds_fd1_obj_ttc_le_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd1_obj_ttc_le_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd1_obj_ttc_le_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_rsds_fd1_rolling_counter_rsds_r_3_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rolling_counter_rsds_r_3_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rolling_counter_rsds_r_3_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_rsds_fd1_checksum_rsds_r_4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_checksum_rsds_r_4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_checksum_rsds_r_4_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_rsds_fd1_obj_len_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_len_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_len_le_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_rsds_fd1_obj_width_le_encode(double value)
{
    return (uint8_t)(value / 0.5);
}

double b30_001_rsds_fd1_obj_width_le_decode(uint8_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_rsds_fd1_obj_width_le_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_rsds_fd1_obj_staty_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_staty_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_staty_le_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_zone_ind_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_zone_ind_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_zone_ind_le_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_obj_sts_le_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_sts_le_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_sts_le_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_obj_rin_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_rin_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_rin_ri_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_rsds_fd1_obj_width_ri_encode(double value)
{
    return (uint8_t)(value / 0.5);
}

double b30_001_rsds_fd1_obj_width_ri_decode(uint8_t value)
{
    return ((double)value * 0.5);
}

bool b30_001_rsds_fd1_obj_width_ri_is_in_range(uint8_t value)
{
    return (value <= 7u);
}

uint8_t b30_001_rsds_fd1_obj_staty_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_staty_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_staty_ri_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd1_zone_ind_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_zone_ind_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_zone_ind_ri_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_obj_sts_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_sts_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_sts_ri_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_rolling_counter_rsds_r_4_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rolling_counter_rsds_r_4_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rolling_counter_rsds_r_4_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_rsds_fd1_checksum_rsds_r_5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_checksum_rsds_r_5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_checksum_rsds_r_5_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint8_t b30_001_rsds_fd1_ri_tar_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_ri_tar_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_ri_tar_sts_is_in_range(uint8_t value)
{
    return (value <= 3u);
}

uint8_t b30_001_rsds_fd1_obj_id_ri_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_obj_id_ri_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_obj_id_ri_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint16_t b30_001_rsds_fd1_obj_lgt_posn_curv_ri_encode(double value)
{
    return (uint16_t)((value - -92.3) / 0.1);
}

double b30_001_rsds_fd1_obj_lgt_posn_curv_ri_decode(uint16_t value)
{
    return (((double)value * 0.1) + -92.3);
}

bool b30_001_rsds_fd1_obj_lgt_posn_curv_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_rsds_fd1_obj_lat_posn_curv_ri_encode(double value)
{
    return (uint8_t)((value - -12.8) / 0.1);
}

double b30_001_rsds_fd1_obj_lat_posn_curv_ri_decode(uint8_t value)
{
    return (((double)value * 0.1) + -12.8);
}

bool b30_001_rsds_fd1_obj_lat_posn_curv_ri_is_in_range(uint8_t value)
{
    (void)value;

    return (true);
}

uint16_t b30_001_rsds_fd1_obj_lgt_spd_curv_ri_encode(double value)
{
    return (uint16_t)((value - -10.0) / 0.1);
}

double b30_001_rsds_fd1_obj_lgt_spd_curv_ri_decode(uint16_t value)
{
    return (((double)value * 0.1) + -10.0);
}

bool b30_001_rsds_fd1_obj_lgt_spd_curv_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint8_t b30_001_rsds_fd1_obj_lat_spd_curv_ri_encode(double value)
{
    return (uint8_t)((value - -6.4) / 0.1);
}

double b30_001_rsds_fd1_obj_lat_spd_curv_ri_decode(uint8_t value)
{
    return (((double)value * 0.1) + -6.4);
}

bool b30_001_rsds_fd1_obj_lat_spd_curv_ri_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_rsds_fd1_obj_ttc_ri_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd1_obj_ttc_ri_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd1_obj_ttc_ri_is_in_range(uint8_t value)
{
    return (value <= 127u);
}

uint8_t b30_001_rsds_fd1_rolling_counter_rsds_r_5_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd1_rolling_counter_rsds_r_5_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd1_rolling_counter_rsds_r_5_is_in_range(uint8_t value)
{
    return (value <= 15u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_dist_x_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_dist_x_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_dist_x_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_dist_y_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_dist_y_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_dist_y_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_rel_vel_x_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_rel_vel_x_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_rel_vel_x_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_rel_vel_y_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_rel_vel_y_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_rel_vel_y_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_r_accel_x_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_r_accel_x_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_r_accel_x_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_r_accel_y_std_le_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_r_accel_y_std_le_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_r_accel_y_std_le_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_dist_x_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_dist_x_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_dist_x_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_dist_y_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_dist_y_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_dist_y_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_rel_vel_x_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_rel_vel_x_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_rel_vel_x_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_rel_vel_y_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_rel_vel_y_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_rel_vel_y_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_r_accel_x_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_r_accel_x_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_r_accel_x_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint8_t b30_001_rsds_fd1_rsds_obj_r_accel_y_std_ri_encode(double value)
{
    return (uint8_t)(value / 0.375);
}

double b30_001_rsds_fd1_rsds_obj_r_accel_y_std_ri_decode(uint8_t value)
{
    return ((double)value * 0.375);
}

bool b30_001_rsds_fd1_rsds_obj_r_accel_y_std_ri_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

uint16_t b30_001_rsds_fd1_rsds_obj_rel_accel_x_le_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_rsds_fd1_rsds_obj_rel_accel_x_le_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_rsds_fd1_rsds_obj_rel_accel_x_le_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_rsds_fd1_rsds_obj_rel_accel_x_ri_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_rsds_fd1_rsds_obj_rel_accel_x_ri_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_rsds_fd1_rsds_obj_rel_accel_x_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

uint16_t b30_001_rsds_fd1_rsds_obj_rel_accel_y_ri_encode(double value)
{
    return (uint16_t)((value - -16.0) / 0.03125);
}

double b30_001_rsds_fd1_rsds_obj_rel_accel_y_ri_decode(uint16_t value)
{
    return (((double)value * 0.03125) + -16.0);
}

bool b30_001_rsds_fd1_rsds_obj_rel_accel_y_ri_is_in_range(uint16_t value)
{
    return (value <= 1023u);
}

int b30_001_rsds_fd2_pack(
    uint8_t *dst_p,
    const struct b30_001_rsds_fd2_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 64);

    dst_p[1] |= pack_left_shift_u8(src_p->rcta_b_ttc, 2u, 0xfcu);
    dst_p[1] |= pack_right_shift_u8(src_p->bsd_lca_left_ttc, 4u, 0x03u);
    dst_p[2] |= pack_left_shift_u8(src_p->bsd_lca_left_ttc, 4u, 0xf0u);
    dst_p[2] |= pack_right_shift_u8(src_p->bsd_lca_right_ttc, 2u, 0x0fu);
    dst_p[3] |= pack_left_shift_u8(src_p->bsd_lca_right_ttc, 6u, 0xc0u);
    dst_p[3] |= pack_left_shift_u8(src_p->rcw_ttc, 0u, 0x3fu);
    dst_p[9] |= pack_left_shift_u8(src_p->rsds_le_tgt_01, 7u, 0x80u);
    dst_p[9] |= pack_left_shift_u8(src_p->rsds_le_tgt_01_dy, 0u, 0x7fu);
    dst_p[10] |= pack_right_shift_u16(src_p->rsds_le_tgt_01_dx, 2u, 0xffu);
    dst_p[11] |= pack_left_shift_u16(src_p->rsds_le_tgt_01_dx, 6u, 0xc0u);
    dst_p[11] |= pack_left_shift_u8(src_p->rsds_le_tgt_02, 5u, 0x20u);
    dst_p[11] |= pack_right_shift_u16(src_p->rsds_le_tgt_02_dx, 5u, 0x1fu);
    dst_p[12] |= pack_left_shift_u16(src_p->rsds_le_tgt_02_dx, 3u, 0xf8u);
    dst_p[12] |= pack_right_shift_u8(src_p->rsds_le_tgt_02_dy, 4u, 0x07u);
    dst_p[13] |= pack_left_shift_u8(src_p->rsds_le_tgt_02_dy, 4u, 0xf0u);
    dst_p[13] |= pack_left_shift_u8(src_p->rsds_ri_tgt_01, 3u, 0x08u);
    dst_p[13] |= pack_right_shift_u16(src_p->rsds_ri_tgt_01_dx, 7u, 0x07u);
    dst_p[14] |= pack_left_shift_u16(src_p->rsds_ri_tgt_01_dx, 1u, 0xfeu);
    dst_p[17] |= pack_left_shift_u8(src_p->rsds_ri_tgt_01_dy, 1u, 0xfeu);
    dst_p[17] |= pack_left_shift_u8(src_p->rsds_ri_tgt_02, 0u, 0x01u);
    dst_p[18] |= pack_right_shift_u16(src_p->rsds_ri_tgt_02_dx, 2u, 0xffu);
    dst_p[19] |= pack_left_shift_u16(src_p->rsds_ri_tgt_02_dx, 6u, 0xc0u);
    dst_p[19] |= pack_right_shift_u8(src_p->rsds_ri_tgt_02_dy, 1u, 0x3fu);
    dst_p[20] |= pack_left_shift_u8(src_p->rsds_ri_tgt_02_dy, 7u, 0x80u);
    dst_p[20] |= pack_left_shift_u8(src_p->rsds_mid_tgt_01, 6u, 0x40u);
    dst_p[20] |= pack_right_shift_u16(src_p->rsds_mid_tgt_01_dx, 4u, 0x3fu);
    dst_p[21] |= pack_left_shift_u16(src_p->rsds_mid_tgt_01_dx, 4u, 0xf0u);
    dst_p[21] |= pack_right_shift_u8(src_p->rsds_mid_tgt_01_dy, 3u, 0x0fu);
    dst_p[22] |= pack_left_shift_u8(src_p->rsds_mid_tgt_01_dy, 5u, 0xe0u);
    dst_p[22] |= pack_left_shift_u8(src_p->rsds_mid_tgt_02, 4u, 0x10u);
    dst_p[25] |= pack_right_shift_u16(src_p->rsds_mid_tgt_02_dx, 2u, 0xffu);
    dst_p[26] |= pack_left_shift_u16(src_p->rsds_mid_tgt_02_dx, 6u, 0xc0u);
    dst_p[26] |= pack_right_shift_u8(src_p->rsds_mid_tgt_02_dy, 1u, 0x3fu);
    dst_p[27] |= pack_left_shift_u8(src_p->rsds_mid_tgt_02_dy, 7u, 0x80u);

    return (64);
}

int b30_001_rsds_fd2_unpack(
    struct b30_001_rsds_fd2_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 64u) {
        return (-EINVAL);
    }

    dst_p->rcta_b_ttc = unpack_right_shift_u8(src_p[1], 2u, 0xfcu);
    dst_p->bsd_lca_left_ttc = unpack_left_shift_u8(src_p[1], 4u, 0x03u);
    dst_p->bsd_lca_left_ttc |= unpack_right_shift_u8(src_p[2], 4u, 0xf0u);
    dst_p->bsd_lca_right_ttc = unpack_left_shift_u8(src_p[2], 2u, 0x0fu);
    dst_p->bsd_lca_right_ttc |= unpack_right_shift_u8(src_p[3], 6u, 0xc0u);
    dst_p->rcw_ttc = unpack_right_shift_u8(src_p[3], 0u, 0x3fu);
    dst_p->rsds_le_tgt_01 = unpack_right_shift_u8(src_p[9], 7u, 0x80u);
    dst_p->rsds_le_tgt_01_dy = unpack_right_shift_u8(src_p[9], 0u, 0x7fu);
    dst_p->rsds_le_tgt_01_dx = unpack_left_shift_u16(src_p[10], 2u, 0xffu);
    dst_p->rsds_le_tgt_01_dx |= unpack_right_shift_u16(src_p[11], 6u, 0xc0u);
    dst_p->rsds_le_tgt_02 = unpack_right_shift_u8(src_p[11], 5u, 0x20u);
    dst_p->rsds_le_tgt_02_dx = unpack_left_shift_u16(src_p[11], 5u, 0x1fu);
    dst_p->rsds_le_tgt_02_dx |= unpack_right_shift_u16(src_p[12], 3u, 0xf8u);
    dst_p->rsds_le_tgt_02_dy = unpack_left_shift_u8(src_p[12], 4u, 0x07u);
    dst_p->rsds_le_tgt_02_dy |= unpack_right_shift_u8(src_p[13], 4u, 0xf0u);
    dst_p->rsds_ri_tgt_01 = unpack_right_shift_u8(src_p[13], 3u, 0x08u);
    dst_p->rsds_ri_tgt_01_dx = unpack_left_shift_u16(src_p[13], 7u, 0x07u);
    dst_p->rsds_ri_tgt_01_dx |= unpack_right_shift_u16(src_p[14], 1u, 0xfeu);
    dst_p->rsds_ri_tgt_01_dy = unpack_right_shift_u8(src_p[17], 1u, 0xfeu);
    dst_p->rsds_ri_tgt_02 = unpack_right_shift_u8(src_p[17], 0u, 0x01u);
    dst_p->rsds_ri_tgt_02_dx = unpack_left_shift_u16(src_p[18], 2u, 0xffu);
    dst_p->rsds_ri_tgt_02_dx |= unpack_right_shift_u16(src_p[19], 6u, 0xc0u);
    dst_p->rsds_ri_tgt_02_dy = unpack_left_shift_u8(src_p[19], 1u, 0x3fu);
    dst_p->rsds_ri_tgt_02_dy |= unpack_right_shift_u8(src_p[20], 7u, 0x80u);
    dst_p->rsds_mid_tgt_01 = unpack_right_shift_u8(src_p[20], 6u, 0x40u);
    dst_p->rsds_mid_tgt_01_dx = unpack_left_shift_u16(src_p[20], 4u, 0x3fu);
    dst_p->rsds_mid_tgt_01_dx |= unpack_right_shift_u16(src_p[21], 4u, 0xf0u);
    dst_p->rsds_mid_tgt_01_dy = unpack_left_shift_u8(src_p[21], 3u, 0x0fu);
    dst_p->rsds_mid_tgt_01_dy |= unpack_right_shift_u8(src_p[22], 5u, 0xe0u);
    dst_p->rsds_mid_tgt_02 = unpack_right_shift_u8(src_p[22], 4u, 0x10u);
    dst_p->rsds_mid_tgt_02_dx = unpack_left_shift_u16(src_p[25], 2u, 0xffu);
    dst_p->rsds_mid_tgt_02_dx |= unpack_right_shift_u16(src_p[26], 6u, 0xc0u);
    dst_p->rsds_mid_tgt_02_dy = unpack_left_shift_u8(src_p[26], 1u, 0x3fu);
    dst_p->rsds_mid_tgt_02_dy |= unpack_right_shift_u8(src_p[27], 7u, 0x80u);

    return (0);
}

int b30_001_rsds_fd2_init(struct b30_001_rsds_fd2_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_rsds_fd2_t));
    msg_p->rcta_b_ttc = 0.0;
    msg_p->bsd_lca_left_ttc = 0.0;
    msg_p->bsd_lca_right_ttc = 0.0;
    msg_p->rcw_ttc = 0.0;
    msg_p->rsds_le_tgt_01 = 0.0;
    msg_p->rsds_le_tgt_01_dy = 0.0;
    msg_p->rsds_le_tgt_01_dx = 0.0;
    msg_p->rsds_le_tgt_02 = 0.0;
    msg_p->rsds_le_tgt_02_dx = 0.0;
    msg_p->rsds_le_tgt_02_dy = 0.0;
    msg_p->rsds_ri_tgt_01 = 0.0;
    msg_p->rsds_ri_tgt_01_dx = 0.0;
    msg_p->rsds_ri_tgt_01_dy = 0.0;
    msg_p->rsds_ri_tgt_02 = 0.0;
    msg_p->rsds_ri_tgt_02_dx = 0.0;
    msg_p->rsds_ri_tgt_02_dy = 0.0;
    msg_p->rsds_mid_tgt_01 = 0.0;
    msg_p->rsds_mid_tgt_01_dx = 0.0;
    msg_p->rsds_mid_tgt_01_dy = 0.0;
    msg_p->rsds_mid_tgt_02 = 0.0;
    msg_p->rsds_mid_tgt_02_dx = 0.0;
    msg_p->rsds_mid_tgt_02_dy = 0.0;

    return 0;
}

uint8_t b30_001_rsds_fd2_rcta_b_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd2_rcta_b_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd2_rcta_b_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_rsds_fd2_bsd_lca_left_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd2_bsd_lca_left_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd2_bsd_lca_left_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_rsds_fd2_bsd_lca_right_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd2_bsd_lca_right_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd2_bsd_lca_right_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_rsds_fd2_rcw_ttc_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd2_rcw_ttc_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd2_rcw_ttc_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_rsds_fd2_rsds_le_tgt_01_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd2_rsds_le_tgt_01_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd2_rsds_le_tgt_01_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint8_t b30_001_rsds_fd2_rsds_le_tgt_01_dy_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd2_rsds_le_tgt_01_dy_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd2_rsds_le_tgt_01_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint16_t b30_001_rsds_fd2_rsds_le_tgt_01_dx_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_le_tgt_01_dx_decode(uint16_t value)
{
    return (((double)value * 0.1) + -90.0);
}

bool b30_001_rsds_fd2_rsds_le_tgt_01_dx_is_in_range(uint16_t value)
{
    return (value <= 950u);
}

uint8_t b30_001_rsds_fd2_rsds_le_tgt_02_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd2_rsds_le_tgt_02_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd2_rsds_le_tgt_02_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_rsds_fd2_rsds_le_tgt_02_dx_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_le_tgt_02_dx_decode(uint16_t value)
{
    return (((double)value * 0.1) + -90.0);
}

bool b30_001_rsds_fd2_rsds_le_tgt_02_dx_is_in_range(uint16_t value)
{
    return (value <= 950u);
}

uint8_t b30_001_rsds_fd2_rsds_le_tgt_02_dy_encode(double value)
{
    return (uint8_t)(value / 0.1);
}

double b30_001_rsds_fd2_rsds_le_tgt_02_dy_decode(uint8_t value)
{
    return ((double)value * 0.1);
}

bool b30_001_rsds_fd2_rsds_le_tgt_02_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint8_t b30_001_rsds_fd2_rsds_ri_tgt_01_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd2_rsds_ri_tgt_01_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd2_rsds_ri_tgt_01_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_rsds_fd2_rsds_ri_tgt_01_dx_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_ri_tgt_01_dx_decode(uint16_t value)
{
    return (((double)value * 0.1) + -90.0);
}

bool b30_001_rsds_fd2_rsds_ri_tgt_01_dx_is_in_range(uint16_t value)
{
    return (value <= 950u);
}

uint8_t b30_001_rsds_fd2_rsds_ri_tgt_01_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_ri_tgt_01_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_rsds_fd2_rsds_ri_tgt_01_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint8_t b30_001_rsds_fd2_rsds_ri_tgt_02_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd2_rsds_ri_tgt_02_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd2_rsds_ri_tgt_02_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_rsds_fd2_rsds_ri_tgt_02_dx_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_ri_tgt_02_dx_decode(uint16_t value)
{
    return (((double)value * 0.1) + -90.0);
}

bool b30_001_rsds_fd2_rsds_ri_tgt_02_dx_is_in_range(uint16_t value)
{
    return (value <= 950u);
}

uint8_t b30_001_rsds_fd2_rsds_ri_tgt_02_dy_encode(double value)
{
    return (uint8_t)((value - -8.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_ri_tgt_02_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -8.0);
}

bool b30_001_rsds_fd2_rsds_ri_tgt_02_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint8_t b30_001_rsds_fd2_rsds_mid_tgt_01_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd2_rsds_mid_tgt_01_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd2_rsds_mid_tgt_01_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_rsds_fd2_rsds_mid_tgt_01_dx_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_mid_tgt_01_dx_decode(uint16_t value)
{
    return (((double)value * 0.1) + -90.0);
}

bool b30_001_rsds_fd2_rsds_mid_tgt_01_dx_is_in_range(uint16_t value)
{
    return (value <= 950u);
}

uint8_t b30_001_rsds_fd2_rsds_mid_tgt_01_dy_encode(double value)
{
    return (uint8_t)((value - -4.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_mid_tgt_01_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -4.0);
}

bool b30_001_rsds_fd2_rsds_mid_tgt_01_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

uint8_t b30_001_rsds_fd2_rsds_mid_tgt_02_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_rsds_fd2_rsds_mid_tgt_02_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_rsds_fd2_rsds_mid_tgt_02_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

uint16_t b30_001_rsds_fd2_rsds_mid_tgt_02_dx_encode(double value)
{
    return (uint16_t)((value - -90.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_mid_tgt_02_dx_decode(uint16_t value)
{
    return (((double)value * 0.1) + -90.0);
}

bool b30_001_rsds_fd2_rsds_mid_tgt_02_dx_is_in_range(uint16_t value)
{
    return (value <= 950u);
}

uint8_t b30_001_rsds_fd2_rsds_mid_tgt_02_dy_encode(double value)
{
    return (uint8_t)((value - -4.0) / 0.1);
}

double b30_001_rsds_fd2_rsds_mid_tgt_02_dy_decode(uint8_t value)
{
    return (((double)value * 0.1) + -4.0);
}

bool b30_001_rsds_fd2_rsds_mid_tgt_02_dy_is_in_range(uint8_t value)
{
    return (value <= 80u);
}

int b30_001_t_box_fd3_pack(
    uint8_t *dst_p,
    const struct b30_001_t_box_fd3_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 16);

    dst_p[0] |= pack_left_shift_u8(src_p->t_box_sys_err_sts, 3u, 0xf8u);

    return (16);
}

int b30_001_t_box_fd3_unpack(
    struct b30_001_t_box_fd3_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 16u) {
        return (-EINVAL);
    }

    dst_p->t_box_sys_err_sts = unpack_right_shift_u8(src_p[0], 3u, 0xf8u);

    return (0);
}

int b30_001_t_box_fd3_init(struct b30_001_t_box_fd3_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_t_box_fd3_t));
    msg_p->t_box_sys_err_sts = 0.0;

    return 0;
}

uint8_t b30_001_t_box_fd3_t_box_sys_err_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_t_box_fd3_t_box_sys_err_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_t_box_fd3_t_box_sys_err_sts_is_in_range(uint8_t value)
{
    return (value <= 31u);
}

int b30_001_tmcu6_pack(
    uint8_t *dst_p,
    const struct b30_001_tmcu6_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[1] |= pack_right_shift_u16(src_p->tmcu_act_pos_rot_spd, 8u, 0xffu);
    dst_p[2] |= pack_left_shift_u16(src_p->tmcu_act_pos_rot_spd, 0u, 0xffu);

    return (8);
}

int b30_001_tmcu6_unpack(
    struct b30_001_tmcu6_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->tmcu_act_pos_rot_spd = unpack_left_shift_u16(src_p[1], 8u, 0xffu);
    dst_p->tmcu_act_pos_rot_spd |= unpack_right_shift_u16(src_p[2], 0u, 0xffu);

    return (0);
}

int b30_001_tmcu6_init(struct b30_001_tmcu6_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_tmcu6_t));
    msg_p->tmcu_act_pos_rot_spd = 0.0;

    return 0;
}

uint16_t b30_001_tmcu6_tmcu_act_pos_rot_spd_encode(double value)
{
    return (uint16_t)(value);
}

double b30_001_tmcu6_tmcu_act_pos_rot_spd_decode(uint16_t value)
{
    return ((double)value);
}

bool b30_001_tmcu6_tmcu_act_pos_rot_spd_is_in_range(uint16_t value)
{
    return (value <= 65534u);
}

int b30_001_trailer1_pack(
    uint8_t *dst_p,
    const struct b30_001_trailer1_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->trailer_sts, 7u, 0x80u);

    return (8);
}

int b30_001_trailer1_unpack(
    struct b30_001_trailer1_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->trailer_sts = unpack_right_shift_u8(src_p[0], 7u, 0x80u);

    return (0);
}

int b30_001_trailer1_init(struct b30_001_trailer1_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_trailer1_t));
    msg_p->trailer_sts = 0.0;

    return 0;
}

uint8_t b30_001_trailer1_trailer_sts_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_trailer1_trailer_sts_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_trailer1_trailer_sts_is_in_range(uint8_t value)
{
    return (value <= 1u);
}

int b30_001_hc_nm_pack(
    uint8_t *dst_p,
    const struct b30_001_hc_nm_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->destination_hc_nm, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->op_code_hc_nm, 0u, 0xffu);

    return (8);
}

int b30_001_hc_nm_unpack(
    struct b30_001_hc_nm_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->destination_hc_nm = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->op_code_hc_nm = unpack_right_shift_u8(src_p[1], 0u, 0xffu);

    return (0);
}

int b30_001_hc_nm_init(struct b30_001_hc_nm_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hc_nm_t));

    return 0;
}

uint8_t b30_001_hc_nm_destination_hc_nm_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc_nm_destination_hc_nm_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc_nm_destination_hc_nm_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_hc_nm_op_code_hc_nm_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_hc_nm_op_code_hc_nm_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_hc_nm_op_code_hc_nm_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

int b30_001_gw_nm_pack(
    uint8_t *dst_p,
    const struct b30_001_gw_nm_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_left_shift_u8(src_p->destination_gw_nm, 0u, 0xffu);
    dst_p[1] |= pack_left_shift_u8(src_p->op_code_gw_nm, 0u, 0xffu);

    return (8);
}

int b30_001_gw_nm_unpack(
    struct b30_001_gw_nm_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->destination_gw_nm = unpack_right_shift_u8(src_p[0], 0u, 0xffu);
    dst_p->op_code_gw_nm = unpack_right_shift_u8(src_p[1], 0u, 0xffu);

    return (0);
}

int b30_001_gw_nm_init(struct b30_001_gw_nm_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_gw_nm_t));

    return 0;
}

uint8_t b30_001_gw_nm_destination_gw_nm_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_gw_nm_destination_gw_nm_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_gw_nm_destination_gw_nm_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

uint8_t b30_001_gw_nm_op_code_gw_nm_encode(double value)
{
    return (uint8_t)(value);
}

double b30_001_gw_nm_op_code_gw_nm_decode(uint8_t value)
{
    return ((double)value);
}

bool b30_001_gw_nm_op_code_gw_nm_is_in_range(uint8_t value)
{
    return (value <= 63u);
}

int b30_001_diag_func_req_pack(
    uint8_t *dst_p,
    const struct b30_001_diag_func_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->diag_func_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->diag_func_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->diag_func_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->diag_func_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->diag_func_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->diag_func_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->diag_func_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->diag_func_req, 0u, 0xffu);

    return (8);
}

int b30_001_diag_func_req_unpack(
    struct b30_001_diag_func_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->diag_func_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->diag_func_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->diag_func_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->diag_func_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->diag_func_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->diag_func_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->diag_func_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->diag_func_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_diag_func_req_init(struct b30_001_diag_func_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_diag_func_req_t));

    return 0;
}

uint64_t b30_001_diag_func_req_diag_func_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_diag_func_req_diag_func_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_diag_func_req_diag_func_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_gw_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_gw_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->gw_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->gw_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->gw_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->gw_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->gw_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->gw_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->gw_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->gw_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_gw_phy_req_unpack(
    struct b30_001_gw_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->gw_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->gw_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->gw_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->gw_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->gw_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->gw_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->gw_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->gw_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_gw_phy_req_init(struct b30_001_gw_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_gw_phy_req_t));

    return 0;
}

uint64_t b30_001_gw_phy_req_gw_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_gw_phy_req_gw_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_gw_phy_req_gw_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_rsds_l_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_rsds_l_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->rsds_l_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->rsds_l_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_rsds_l_phy_req_unpack(
    struct b30_001_rsds_l_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rsds_l_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->rsds_l_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_rsds_l_phy_req_init(struct b30_001_rsds_l_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_rsds_l_phy_req_t));

    return 0;
}

uint64_t b30_001_rsds_l_phy_req_rsds_l_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_rsds_l_phy_req_rsds_l_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_rsds_l_phy_req_rsds_l_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_rsds_r_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_rsds_r_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->rsds_r_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->rsds_r_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_rsds_r_phy_req_unpack(
    struct b30_001_rsds_r_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rsds_r_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->rsds_r_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_rsds_r_phy_req_init(struct b30_001_rsds_r_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_rsds_r_phy_req_t));

    return 0;
}

uint64_t b30_001_rsds_r_phy_req_rsds_r_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_rsds_r_phy_req_rsds_r_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_rsds_r_phy_req_rsds_r_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_ifc_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->ifc_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->ifc_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->ifc_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->ifc_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->ifc_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->ifc_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->ifc_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->ifc_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_ifc_phy_req_unpack(
    struct b30_001_ifc_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->ifc_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->ifc_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->ifc_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->ifc_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->ifc_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->ifc_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->ifc_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->ifc_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_ifc_phy_req_init(struct b30_001_ifc_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_phy_req_t));

    return 0;
}

uint64_t b30_001_ifc_phy_req_ifc_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_ifc_phy_req_ifc_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_ifc_phy_req_ifc_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_hc_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_hc_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->hc_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->hc_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->hc_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->hc_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->hc_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->hc_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->hc_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->hc_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_hc_phy_req_unpack(
    struct b30_001_hc_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->hc_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->hc_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->hc_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->hc_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->hc_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->hc_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->hc_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->hc_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_hc_phy_req_init(struct b30_001_hc_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hc_phy_req_t));

    return 0;
}

uint64_t b30_001_hc_phy_req_hc_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_hc_phy_req_hc_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_hc_phy_req_hc_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_hap_ipas_pas_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_hap_ipas_pas_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->hap_ipas_pas_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_hap_ipas_pas_phy_req_unpack(
    struct b30_001_hap_ipas_pas_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->hap_ipas_pas_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->hap_ipas_pas_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_hap_ipas_pas_phy_req_init(struct b30_001_hap_ipas_pas_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hap_ipas_pas_phy_req_t));

    return 0;
}

uint64_t b30_001_hap_ipas_pas_phy_req_hap_ipas_pas_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_hap_ipas_pas_phy_req_hap_ipas_pas_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_hap_ipas_pas_phy_req_hap_ipas_pas_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_gw_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_gw_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->gw_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->gw_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->gw_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->gw_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->gw_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->gw_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->gw_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->gw_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_gw_phy_resp_unpack(
    struct b30_001_gw_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->gw_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->gw_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->gw_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->gw_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->gw_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->gw_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->gw_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->gw_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_gw_phy_resp_init(struct b30_001_gw_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_gw_phy_resp_t));

    return 0;
}

uint64_t b30_001_gw_phy_resp_gw_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_gw_phy_resp_gw_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_gw_phy_resp_gw_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_rsds_l_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_rsds_l_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->rsds_l_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->rsds_l_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_rsds_l_phy_resp_unpack(
    struct b30_001_rsds_l_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rsds_l_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->rsds_l_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_rsds_l_phy_resp_init(struct b30_001_rsds_l_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_rsds_l_phy_resp_t));

    return 0;
}

uint64_t b30_001_rsds_l_phy_resp_rsds_l_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_rsds_l_phy_resp_rsds_l_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_rsds_l_phy_resp_rsds_l_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_rsds_r_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_rsds_r_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->rsds_r_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->rsds_r_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_rsds_r_phy_resp_unpack(
    struct b30_001_rsds_r_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->rsds_r_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->rsds_r_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_rsds_r_phy_resp_init(struct b30_001_rsds_r_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_rsds_r_phy_resp_t));

    return 0;
}

uint64_t b30_001_rsds_r_phy_resp_rsds_r_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_rsds_r_phy_resp_rsds_r_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_rsds_r_phy_resp_rsds_r_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_ifc_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_ifc_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->ifc_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->ifc_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->ifc_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->ifc_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->ifc_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->ifc_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->ifc_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->ifc_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_ifc_phy_resp_unpack(
    struct b30_001_ifc_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->ifc_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->ifc_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_ifc_phy_resp_init(struct b30_001_ifc_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_ifc_phy_resp_t));

    return 0;
}

uint64_t b30_001_ifc_phy_resp_ifc_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_ifc_phy_resp_ifc_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_ifc_phy_resp_ifc_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_hc_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_hc_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->hc_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->hc_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->hc_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->hc_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->hc_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->hc_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->hc_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->hc_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_hc_phy_resp_unpack(
    struct b30_001_hc_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->hc_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->hc_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->hc_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->hc_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->hc_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->hc_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->hc_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->hc_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_hc_phy_resp_init(struct b30_001_hc_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hc_phy_resp_t));

    return 0;
}

uint64_t b30_001_hc_phy_resp_hc_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_hc_phy_resp_hc_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_hc_phy_resp_hc_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_hap_ipas_pas_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_hap_ipas_pas_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->hap_ipas_pas_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->hap_ipas_pas_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_hap_ipas_pas_phy_resp_unpack(
    struct b30_001_hap_ipas_pas_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->hap_ipas_pas_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->hap_ipas_pas_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_hap_ipas_pas_phy_resp_init(struct b30_001_hap_ipas_pas_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_hap_ipas_pas_phy_resp_t));

    return 0;
}

uint64_t b30_001_hap_ipas_pas_phy_resp_hap_ipas_pas_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_hap_ipas_pas_phy_resp_hap_ipas_pas_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_hap_ipas_pas_phy_resp_hap_ipas_pas_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_fr_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_fr_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->fr_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->fr_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->fr_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->fr_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->fr_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->fr_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->fr_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->fr_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_fr_phy_req_unpack(
    struct b30_001_fr_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->fr_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->fr_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->fr_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->fr_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->fr_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->fr_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->fr_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->fr_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_fr_phy_req_init(struct b30_001_fr_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_fr_phy_req_t));

    return 0;
}

uint64_t b30_001_fr_phy_req_fr_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_fr_phy_req_fr_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_fr_phy_req_fr_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_cr_l_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_cr_l_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->cr_l_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->cr_l_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->cr_l_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->cr_l_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->cr_l_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->cr_l_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->cr_l_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->cr_l_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_cr_l_phy_req_unpack(
    struct b30_001_cr_l_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->cr_l_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->cr_l_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_cr_l_phy_req_init(struct b30_001_cr_l_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_cr_l_phy_req_t));

    return 0;
}

uint64_t b30_001_cr_l_phy_req_cr_l_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_cr_l_phy_req_cr_l_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_cr_l_phy_req_cr_l_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_cr_r_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_cr_r_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->cr_r_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->cr_r_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->cr_r_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->cr_r_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->cr_r_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->cr_r_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->cr_r_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->cr_r_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_cr_r_phy_req_unpack(
    struct b30_001_cr_r_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->cr_r_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->cr_r_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_cr_r_phy_req_init(struct b30_001_cr_r_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_cr_r_phy_req_t));

    return 0;
}

uint64_t b30_001_cr_r_phy_req_cr_r_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_cr_r_phy_req_cr_r_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_cr_r_phy_req_cr_r_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_idc_l2_phy_req_pack(
    uint8_t *dst_p,
    const struct b30_001_idc_l2_phy_req_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->idc_l2_phy_req, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->idc_l2_phy_req, 0u, 0xffu);

    return (8);
}

int b30_001_idc_l2_phy_req_unpack(
    struct b30_001_idc_l2_phy_req_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->idc_l2_phy_req = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->idc_l2_phy_req |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_idc_l2_phy_req_init(struct b30_001_idc_l2_phy_req_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_idc_l2_phy_req_t));

    return 0;
}

uint64_t b30_001_idc_l2_phy_req_idc_l2_phy_req_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_idc_l2_phy_req_idc_l2_phy_req_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_idc_l2_phy_req_idc_l2_phy_req_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_fr_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_fr_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->fr_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->fr_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->fr_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->fr_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->fr_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->fr_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->fr_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->fr_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_fr_phy_resp_unpack(
    struct b30_001_fr_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->fr_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->fr_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->fr_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->fr_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->fr_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->fr_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->fr_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->fr_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_fr_phy_resp_init(struct b30_001_fr_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_fr_phy_resp_t));

    return 0;
}

uint64_t b30_001_fr_phy_resp_fr_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_fr_phy_resp_fr_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_fr_phy_resp_fr_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_cr_l_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_cr_l_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->cr_l_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->cr_l_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_cr_l_phy_resp_unpack(
    struct b30_001_cr_l_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->cr_l_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->cr_l_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_cr_l_phy_resp_init(struct b30_001_cr_l_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_cr_l_phy_resp_t));

    return 0;
}

uint64_t b30_001_cr_l_phy_resp_cr_l_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_cr_l_phy_resp_cr_l_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_cr_l_phy_resp_cr_l_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_cr_r_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_cr_r_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->cr_r_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->cr_r_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_cr_r_phy_resp_unpack(
    struct b30_001_cr_r_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->cr_r_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->cr_r_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_cr_r_phy_resp_init(struct b30_001_cr_r_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_cr_r_phy_resp_t));

    return 0;
}

uint64_t b30_001_cr_r_phy_resp_cr_r_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_cr_r_phy_resp_cr_r_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_cr_r_phy_resp_cr_r_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}

int b30_001_idc_l2_phy_resp_pack(
    uint8_t *dst_p,
    const struct b30_001_idc_l2_phy_resp_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    memset(&dst_p[0], 0, 8);

    dst_p[0] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 56u, 0xffu);
    dst_p[1] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 48u, 0xffu);
    dst_p[2] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 40u, 0xffu);
    dst_p[3] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 32u, 0xffu);
    dst_p[4] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 24u, 0xffu);
    dst_p[5] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 16u, 0xffu);
    dst_p[6] |= pack_right_shift_u64(src_p->idc_l2_phy_resp, 8u, 0xffu);
    dst_p[7] |= pack_left_shift_u64(src_p->idc_l2_phy_resp, 0u, 0xffu);

    return (8);
}

int b30_001_idc_l2_phy_resp_unpack(
    struct b30_001_idc_l2_phy_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size)
{
    if (size < 8u) {
        return (-EINVAL);
    }

    dst_p->idc_l2_phy_resp = unpack_left_shift_u64(src_p[0], 56u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_left_shift_u64(src_p[1], 48u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_left_shift_u64(src_p[2], 40u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_left_shift_u64(src_p[3], 32u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_left_shift_u64(src_p[4], 24u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_left_shift_u64(src_p[5], 16u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_left_shift_u64(src_p[6], 8u, 0xffu);
    dst_p->idc_l2_phy_resp |= unpack_right_shift_u64(src_p[7], 0u, 0xffu);

    return (0);
}

int b30_001_idc_l2_phy_resp_init(struct b30_001_idc_l2_phy_resp_t *msg_p)
{
    if (msg_p == NULL) return -1;

    memset(msg_p, 0, sizeof(struct b30_001_idc_l2_phy_resp_t));

    return 0;
}

uint64_t b30_001_idc_l2_phy_resp_idc_l2_phy_resp_encode(double value)
{
    return (uint64_t)(value);
}

double b30_001_idc_l2_phy_resp_idc_l2_phy_resp_decode(uint64_t value)
{
    return ((double)value);
}

bool b30_001_idc_l2_phy_resp_idc_l2_phy_resp_is_in_range(uint64_t value)
{
    (void)value;

    return (true);
}
